Jerry 往倉(cāng)庫(kù)里添加了一個(gè)叫做 array.c 的文件。 Tom 簽出最后一個(gè)版本后開(kāi)始工作。
[tom@CentOS ~]$ svn co http://svn.server.com/svn/project_repo --username=tom
上面的命令將會(huì)產(chǎn)生下面的效果
A project_repo/trunk
A project_repo/trunk/array.c
A project_repo/branches
A project_repo/tags
Checked out revision 2.
但是,他發(fā)現(xiàn)有人已經(jīng)添加了代碼,他很好奇是誰(shuí)添加的,于是他用下面的命令檢查 log 信息:
[tom@CentOS trunk]$ svn log
上面的命令將會(huì)產(chǎn)生下面的效果
------------------------------------------------------------------------
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
------------------------------------------------------------------------
當(dāng) Tom 查看 Jerry 的代碼時(shí),他注意到了里面的一個(gè) bug 。 Jerry 沒(méi)有檢查數(shù)組溢出,這會(huì)導(dǎo)致很?chē)?yán)重的問(wèn)題。所以 Tom 決定修復(fù)這個(gè)問(wèn)題。在修改之后, array.c 將會(huì)是這個(gè)樣子。
#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 操作來(lái)看看將要生效的更改列表
[tom@CentOS trunk]$ svn status
M array.c
array.c 文件已經(jīng)被修改,Subversion 會(huì)在修改過(guò)的文件前面加一個(gè)字母 M 。接下來(lái) Tom 編譯測(cè)試了他的代碼,并且工作良好。在提交更改前,他想要再次檢查他的更改。
[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 會(huì)在新添加的這幾行代碼前面添加 + 號(hào)標(biāo)記,現(xiàn)在,他已經(jīng)準(zhǔn)備好提交他的代碼。
[tom@CentOS trunk]$ svn commit -m "Fix array overflow problem"
上面的命令將會(huì)產(chǎn)生下面的效果
Sending trunk/array.c
Transmitting file data .
Committed revision 3.
Tom 的更改被成功得提交到了倉(cāng)庫(kù)中。
更多建議: