SVN-変更のレビュー
Jerryはすでにarray.cファイルをリポジトリに追加しています。トムはまた、最新のコードをチェックアウトして作業を開始します。
[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
------------------------------------------------------------------------
ときにトムが観察ジェリーのコードを、彼はすぐにそのバグに気付きました。ジェリーは、深刻な問題を引き起こす可能性のある配列のオーバーフローをチェックしていませんでした。そこでトムはこの問題を解決することにしました。変更後、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@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)
トムはarray.cファイルに数行を追加しました。そのため、Subversionは + 新しい行の前に署名します。これで、彼は変更をコミットする準備ができました。
[tom@CentOS trunk]$ svn commit -m "Fix array overflow problem"
上記のコマンドは次の結果を生成します。
Sending trunk/array.c
Transmitting file data .
Committed revision 3.
トムの変更はリポジトリに正常にコミットされます。