SVN - Cách Review các thay đổi (Học SVN)
Jerry đã thực hiện thêm tệp array. c tới repository. Tom cũng đã kiểm tra code mới nhất và bắt đầu thực hiện các việc.
[tom@CentOS ~]$ svn co http: //svn. server. com.. /svn/project_repo --username=tom
Lệnh trên sẽ tạo ra kết quả như dưới đây:
A project_repo/trunk A project_repo/trunk/array. c A project_repo/branches A project_repo/tags Checked out revision 2.
Nhưng, anh ta đã nhận ra rằng có ai đó đã thêm code. Chính vì thế anh ta tò mò về người đã làm việc đó và anh ta đã kiểm tra thông báo log để quan sát chi tiết hơn bằng cách dùng lệnh như dưới đây:
[tom@CentOS trunk]$ svn log
Lệnh trên sẽ tạo ra kết quả như dưới đây:
------------------------------------------------------------------------ r2 | jerry | 2013-08-17 20: 40: 43 +0530 (Sat, 17 Aug 2013) | 1 line Initial commit ------------------------------------------------------------------------ r1 | jerry | 2013-08-04 23: 43: 08 +0530 (Sun, 04 Aug 2013) | 1 line Create trunk, branches, tags directory structure ------------------------------------------------------------------------
Khi Tom quan sát code của Jerry, anh ta đã lập tức chú ý tới một lỗi (bug) trong đó. Jerry đã không kiểm tra về tràn độ dài chuỗi của mảng, mà điều đó có thể gây ra một số vấn đề nghiêm trọng. Chính vì thế Tom đã quyết định sửa lỗi này. Sau khi chỉnh sửa xong, array. c sẽ trông giống như dưới đây:
#include < stdio. h> #define MAX 16 int main (void) { int i, n, arr [MAX]; printf ("Enter the total number of elements: "); scanf ("%d", & n); /* handle array overflow condition */ if (n > MAX) { fprintf (stderr, "Number of elements must be less than %d\n", MAX); return 1; } printf ("Enter the elements\n"); for (i = 0; i < n; ++i) scanf ("%d", & arr [i]); printf ("Array has following elements\n"); for (i = 0; i < n; ++i) printf ("|%d| ", arr [i]); printf ("\n"); return 0; }
Tom muốn sử dụng hoạt động status để theo dõi quá trình diễn ra liệt kê những thay đổi.
[tom@CentOS trunk]$ svn status M array. c
Tệp array. c đã được chỉnh sửa xong, đó là lí do tại sao subversion chỉ ký tự M trước tên file. Tiếp theo đó, Tom đã biên dịch và kiểm tra code của chính anh ta và nó đang làm tốt việc của mình. Trước khi thực hiện commit các thay đổi, anh ta muốn kiểm tra lại lần hai nó bằng cách duyệt lại những thay đổi mà anh ta đã thực hiện.
[tom@CentOS trunk]$ svn diff Index: array. c =================================================================== --- array. c (revision 2) +++ array. c (working copy) @@ -9,6 +9,11 @@ printf ("Enter the total number of elements: "); scanf ("%d", & n); + if (n > MAX) { + fprintf (stderr, "Number of elements must be less than %d\n", MAX); + return 1; +} + printf ("Enter the elements\n"); for (i = 0; i < n; ++i)
Tom đã thêm một số dòng mới vào tệp array. c, đó là lí do tại sao subversion chỉ ký hiệu + trước các dòng mới. Bây giờ anh ta đã sẵn sàng để thực hiện thao tác commit các thay đổi của mình.
[tom@CentOS trunk]$ svn commit -m "Fix array overflow problem"
Lệnh trên sẽ tạo ra kết quả như dưới đây:
Sending trunk/array. c Transmitting file data. Committed revision 3. Bài trước: SVN - Thực hiện các thay đổi (Học SVN) Bài tiếp: SVN - Tiến trình Update (Học SVN)