SVN 审核更改

  • 审核更改

    Jerry已经将array.c文件添加到存储库中。Tom还将签出最新代码并开始工作。
     
    [tom@CentOS ~]$ svn co svn://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 | 2020-08-17 20:40:43 +0530 (Sat, 17 Aug 2020) | 1 line
    
    Initial commit
    ------------------------------------------------------------------------
    r1 | jerry | 2020-08-04 23:43:08 +0530 (Sun, 04 Aug 2020) | 1 line
    
    Create trunk, branches, tags directory structure
    ------------------------------------------------------------------------
    
    当Tom观察Jerry的代码时,他立即注意到其中的一个错误。Jerry没有检查数组溢出,这可能会导致严重的问题。因此,汤姆决定解决此问题。修改后,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希望使用状态操作来查看挂起的更改列表。
     
    [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)
    
    Tom在array.c文件中添加了几行,这就是为什么Subversion在新行之前显示+号的原因。现在他准备好进行更改。
     
    [tom@CentOS trunk]$ svn commit -m "Fix array overflow problem"
    
    上面的命令将产生以下结果。
     
    Sending        trunk/array.c
    Transmitting file data .
    Committed revision 3.
    
    Tom的更改已成功提交到存储库。