SVN - Quy trình cập nhật
Jerry đã sử dụng phiên bản đầu tiên của mã. Nhưng anh ấy nghĩ rằng anh ấy nên viết hai hàm để chấp nhận đầu vào và hiển thị nội dung mảng. Sau khi sửa đổi, array.c trông như sau.
#include <stdio.h>
#define MAX 16
void accept_input(int *arr, int n) {
int i;
for (i = 0; i < n; ++i)
scanf("%d", &arr[i]);
}
void display(int *arr, int n) {
int i;
for (i = 0; i < n; ++i)
printf("|%d| ", arr[i]);
printf("\n");
}
int main(void) {
int i, n, arr[MAX];
printf("Enter the total number of elements: ");
scanf("%d", &n);
printf("Enter the elements\n");
accept_input(arr, n);
printf("Array has following elements\n");
display(arr, n);
return 0;
}
Jerry biên dịch và kiểm tra mã của mình và sẵn sàng thực hiện các thay đổi. Trước đó, anh ta muốn xem lại các thay đổi bằng lệnh sau.
[jerry@CentOS trunk]$ svn diff
Lệnh trên sẽ cho kết quả như sau.
Index: array.c
===================================================================
--- array.c (revision 2)
+++ array.c (working copy)
@@ -2,6 +2,24 @@
#define MAX 16
+void accept_input(int *arr, int n)
+{
+ int i;
+
+ for (i = 0; i & n; ++i)
+ scanf("%d", &arr[i]);
+}
+
+void display(int *arr, int n)
+{
+ int i;
+
+ for (i = 0; i < n; ++i)
+ printf("|%d| ", arr[i]);
+
+ printf("\n");
+}
+
int main(void)
{
int i, n, arr[MAX];
@@ -10,15 +28,10 @@
scanf("%d", &n);
printf("Enter the elements\n");
+ accept_input(arr, 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");
+ display(arr, n);
return 0;
}
Đối với các dòng mới được thêm vào, Subversion hiển thị + ký trước dòng và đối với dòng đã xóa nó sẽ hiển thị -ký tên. Bây giờ, Jerry cố gắng thực hiện các thay đổi bằng lệnh sau:
[jerry@CentOS trunk]$ svn commit -m "Add function to accept input and to display array contents"
Lệnh trên sẽ cho kết quả như sau.
Sending trunk/array.c
svn: Commit failed (details follow):
svn: File or directory 'array.c' is out of date; try updating
svn: resource out of date; try updating
Subversion không cho phép thực hiện các thay đổi của Jerry , vì Tom đã sửa đổi kho lưu trữ và bản sao làm việc của Jerry đã lỗi thời. Để tránh ghi đè các thay đổi của nhau, Subversion không thực hiện được thao tác này. Jerry phải cập nhật bản sao làm việc trước khi thực hiện các thay đổi của mình. Vì vậy, anh ta sử dụng lệnh cập nhật như hình dưới đây.
[jerry@CentOS trunk]$ svn update
G array.c
Updated to revision 3.
Subversion đang hiển thị bức thư G trước tên tệp, có nghĩa là tệp này đã được hợp nhất.
[jerry@CentOS trunk]$ svn diff
Lệnh trên sẽ cho kết quả như sau.
Index: array.c
===================================================================
--- array.c (revision 3)
+++ array.c (working copy)
@@ -2,6 +2,24 @@
#define MAX 16
+void accept_input(int *arr, int n)
+{
+ int i;
+
+ for (i = 0; i < n; ++i)
+ scanf("%d", &arr[i]);
+}
+
+void display(int *arr, int n)
+{
+ int i;
+
+ for (i = 0; i < n; ++i)
+ printf("|%d| ", arr[i]);
+
+ printf("\n");
+}
+
int main(void)
{
int i, n, arr[MAX];
@@ -15,15 +33,10 @@
}
printf("Enter the elements\n");
+ accept_input(arr, 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");
+ display(arr, n);
return 0;
}
Subversion chỉ hiển thị các thay đổi của Jerry , nhưng tệp array.c đã được hợp nhất. Nếu bạn quan sát kỹ, Subversion hiện đang hiển thị bản sửa đổi số 3. Trong đầu ra trước đó, nó đang hiển thị bản sửa đổi số 2. Chỉ cần xem lại ai đã thực hiện thay đổi trong tệp và cho mục đích gì.
jerry@CentOS trunk]$ svn log
------------------------------------------------------------------------
r3 | tom | 2013-08-18 20:21:50 +0530 (Sun, 18 Aug 2013) | 1 line
Fix array overflow problem
------------------------------------------------------------------------
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
------------------------------------------------------------------------
Giờ đây , bản sao làm việc của Jerry đã được đồng bộ hóa với kho lưu trữ và anh ấy có thể cam kết các thay đổi của mình một cách an toàn.
[jerry@CentOS trunk]$ svn commit -m "Add function to accept input and to display array contents"
Sending trunk/array.c
Transmitting file data .
Committed revision 4.