SVN審查變更
Jerry 已經將 array.c 文件已經添加到庫中。Tom 也檢出最新的代碼,並開始運作。
[tom@CentOS ~]$ svn co http://svn.server.com/svn/project\_repo --username=tom
上面的命令將產生以下結果
A project_repo/trunk
A project_repo/trunk/array.c
A project_repo/branches
A project_repo/tags
Checked out revision 2.
但他是創立的,有人已經添加的代碼。所以他好奇誰這樣做,他看到更多的細節,使用下面的命令檢查日誌消息:
[tom@CentOS trunk]$ svn log
上面的命令將產生以下結果
------------------------------------------------------------------------
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
當Tom觀察了傑裏的代碼。他立即注意到,一個bug已被放入。Jerry不檢查數組溢出,這將導致嚴重的問題。因此,Tom 決定來解決這個問題。經過modificationarray.c會這個樣子。
#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
", MAX); return 1; } printf("Enter the elements
"); for (i = 0; i < n; ++i) scanf("%d", &arr[i]); printf("Array has following elements
"); for (i = 0; i < n; ++i) printf("|%d| ", arr[i]); printf("
"); return 0; }
Tom 要使用狀態操作,看到掛起的更改列表。
[tom@CentOS trunk]$ svn status
M array.c
array.c 文件被修改,這就是爲什麼Subversion 文件名前顯示中號信。接下來Tom編譯和測試自己的代碼和它的正常工作。在提交更改之前,他想通過審查所作的變化,他要仔細檢查它。
[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
", MAX);
return 1;
}
printf("Enter the elements
");for (i = 0; i < n; ++i)
Tom 補充array.c文件,這就是爲什麼顛覆顯示+號新生產線前的幾行。現在準備提交更改。
[tom@CentOS trunk]$ svn commit -m "Fix array overflow problem"
上面的命令將產生以下結果
Sending trunk/array.c
Transmitting file data .
Committed revision 3.
Tom 的變化成功提交到庫中。