SVN 检查更改

Jerry 往仓库里添加了一个叫做 array.c 的文件。 Tom 签出最后一个版本后开始工作。

1
[tom@CentOS ~]$ svn co http://svn.server.com/svn/project_repo --username=tom

上面的命令将会产生下面的效果

1
2
3
4
5
A project_repo/trunk
A project_repo/trunk/array.c
A project_repo/branches
A project_repo/tags
Checked out revision 2.

但是,他发现有人已经添加了代码,他很好奇是谁添加的,于是他用下面的命令检查 log 信息:

1
[tom@CentOS trunk]$ svn log

上面的命令将会产生下面的效果

1
2
3
4
5
6
7
8
9
------------------------------------------------------------------------
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 查看 Jerry 的代码时,他注意到了里面的一个 bug 。 Jerry 没有检查数组溢出,这会导致很严重的问题。所以 Tom 决定修复这个问题。在修改之后, array.c 将会是这个样子。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#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 想使用 status 操作来看看将要生效的更改列表

1
2
[tom@CentOS trunk]$ svn status
M array.c

array.c 文件已经被修改,Subversion 会在修改过的文件前面加一个字母 M 。接下来 Tom 编译测试了他的代码,并且工作良好。在提交更改前,他想要再次检查他的更改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[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 会在新添加的这几行代码前面添加 + 号标记,现在,他已经准备好提交他的代码。

1
[tom@CentOS trunk]$ svn commit -m "Fix array overflow problem"

上面的命令将会产生下面的效果

1
2
3
Sending trunk/array.c
Transmitting file data .
Committed revision 3.

Tom 的更改被成功得提交到了仓库中。

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3