Svn-review-changes

提供:Dev Guides
移動先:案内検索

SVN-変更の確認

_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_が_Jerry’s_のコードを観察すると、彼はすぐにバグに気付きます。 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_は彼のコードをコンパイルおよびテストし、正常に動作しています。 変更をコミットする前に、彼は自分が加えた変更を確認して、それを再確認したいと考えています。

[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’s_の変更はリポジトリに正常にコミットされました。