发布于 2015-07-14 13:29:06 | 268 次阅读 | 评论: 0 | 来源: 网络整理

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 %dn", MAX);
      return 1;
   }

   printf("Enter the elementsn");

   for (i = 0; i < n; ++i)
      scanf("%d", &arr[i]);

   printf("Array has following elementsn");
   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 %dn", MAX);
+      return 1;
+   }
+
    printf("Enter the elementsn");
 
    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 的变化成功提交到库中。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务