Review các thay đổi trong SVN
Jerry đã thêm tệp array.c tới repository. Tom cũng kiểm tra code mới nhất và bắt đầu làm 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ả sau:
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 tìm thấy rằng một ai đó đã thêm code. Vì thế anh ta tò mò về người đã làm điều đó và anh ta kiểm tra thông báo log để quan sát chi tiết hơn bằng cách sử dụng lệnh sau:
[tom@CentOS trunk]$ svn log
Lệnh trên sẽ tạo ra kết quả sau:
------------------------------------------------------------------------ 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 theo dõi code của Jerry, anh ta lập tức chú ý đến một lỗi (bug) trong đó. Jerry không kiểm tra về tràn độ dài chuỗi của mảng, mà có thể gây ra các vấn đề nghiêm trọng. Vì thế Tom quyết định sửa lỗi này. Sau khi chỉnh sửa, array.c sẽ trông giống như sau:
#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 để quan sát quá trình diễn ra liệt kê các thay đổi.
[tom@CentOS trunk]$ svn status M array.c
Tệp array.c đã được chỉnh sửa, đó là tại sao subversion chỉ ký tự M trước tên file. Tiếp đó Tom biên dịch và kiểm tra code của anh ta và nó đang làm việc tốt. Trước khi commit các thay đổi, anh ta muốn kiểm tra lần hai nó bằng cách duyệt lại các 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 vài dòng mới vào tệp array.c, đó là 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 để 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ả sau:
Sending trunk/array.c Transmitting file data . Committed revision 3.
Các thay đổi của Tom đã được commit thành công tới repository.
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài học SVN phổ biến khác tại VietJack:
- SVN - Tiến trình Checkout
- SVN - Thực hiện các thay đổi
- SVN - Review các thay đổi
- SVN - Tiến trình Update
- SVN - Sửa lỗi