
- SVN 教程
- SVN - 首頁
- SVN - 基本概念
- SVN - 環境設定
- SVN - 生命週期
- SVN - 檢出過程
- SVN - 執行變更
- SVN - 審查變更
- SVN - 更新過程
- SVN - 修復錯誤
- SVN - 解決衝突
- SVN - 標記
- SVN - 分支
- SVN 有用資源
- SVN - 快速指南
- SVN - 有用資源
- SVN - 討論
SVN - 審查變更
傑瑞已將array.c檔案新增到版本庫。湯姆也檢出了最新程式碼並開始工作。
[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 ------------------------------------------------------------------------
當湯姆觀察傑瑞的程式碼時,他立即注意到其中存在一個錯誤。傑瑞沒有檢查陣列溢位,這可能會導致嚴重問題。因此,湯姆決定解決此問題。修改後,array.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\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@CentOS trunk]$ svn status M array.c
array.c檔案已被修改,因此Subversion在檔名之前顯示了字母M。接著,湯姆編譯並測試了他的程式碼,效果很好。在提交更改之前,他想透過審查他所做的更改來仔細檢查一下。
[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)
湯姆在array.c檔案中添加了幾行,因此Subversion在每一行之前都顯示了 + 符號。現在他已經準備提交他的更改。
[tom@CentOS trunk]$ svn commit -m "Fix array overflow problem"
上述命令將產生以下結果。
Sending trunk/array.c Transmitting file data . Committed revision 3.
湯姆的更改已成功提交到版本庫。
廣告