转载

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/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 要使用状态操作,看到挂起的更改列表。

 [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/n", MAX); +      return 1; +   } +     printf("Enter the elements/n");       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 的变化成功提交到库中。

   
正文到此结束
Loading...