SVN - Proses Pembaruan

Jerry telah melakukan versi pertama kode tersebut. Tetapi dia berpikir bahwa dia harus menulis dua fungsi untuk menerima input dan untuk menampilkan konten array. Setelah modifikasi, array.c terlihat seperti berikut.

#include <stdio.h>
#define MAX 16

void accept_input(int *arr, int n) {
   int i;
   for (i = 0; i < n; ++i) 
   scanf("%d", &arr[i]);
}

void display(int *arr, int n) {
   int i;
   for (i = 0; i < n; ++i) 
   printf("|%d| ", arr[i]);
   
   printf("\n");
}

int main(void) {
   int i, n, arr[MAX];

   printf("Enter the total number of elements: ");
   scanf("%d", &n);

   printf("Enter the elements\n");
   accept_input(arr, n);

   printf("Array has following elements\n");
   display(arr, n);

   return 0;
}

Jerry mengkompilasi dan menguji kodenya dan siap untuk melakukan perubahan. Sebelumnya, dia ingin mereview perubahan tersebut menggunakan perintah berikut.

[jerry@CentOS trunk]$ svn diff

Perintah di atas akan menghasilkan hasil sebagai berikut.

Index: array.c
===================================================================
--- array.c   (revision 2)
+++ array.c   (working copy)
@@ -2,6 +2,24 @@
 
 #define MAX 16
 
+void accept_input(int *arr, int n)
+{
+   int i;
+
+   for (i = 0; i & n; ++i)
+      scanf("%d", &arr[i]);
+}
+
+void display(int *arr, int n)
+{
+   int i;
+
+   for (i = 0; i < n; ++i)
+      printf("|%d| ", arr[i]);
+   
+   printf("\n");
+}
+
 int main(void)
 {
    int i, n, arr[MAX];
@@ -10,15 +28,10 @@
    scanf("%d", &n);
 
    printf("Enter the elements\n");
+   accept_input(arr, 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");
+   display(arr, n);
 
    return 0;
 }

Untuk baris baru yang ditambahkan, Subversion menunjukkan + tanda tangan sebelum baris dan untuk menghapus baris itu menunjukkan -tanda. Sekarang, Jerry mencoba untuk melakukan perubahan menggunakan perintah berikut:

[jerry@CentOS trunk]$ svn commit -m "Add function to accept input and to display array contents"

Perintah di atas akan menghasilkan hasil sebagai berikut.

Sending        trunk/array.c
svn: Commit failed (details follow):
svn: File or directory 'array.c' is out of date; try updating
svn: resource out of date; try updating

Subversion tidak mengizinkan untuk melakukan perubahan Jerry , karena Tom telah memodifikasi repositori dan copy pekerjaan Jerry kedaluwarsa. Untuk menghindari menimpa perubahan satu sama lain, Subversion gagal dalam operasi ini. Jerry harus memperbarui copy pekerjaan sebelum melakukan perubahannya. Jadi dia menggunakan perintah pembaruan seperti yang ditunjukkan di bawah ini.

[jerry@CentOS trunk]$ svn update
G    array.c
Updated to revision 3.

Subversion menunjukkan surat itu G sebelum nama file, yang berarti file ini telah digabungkan.

[jerry@CentOS trunk]$ svn diff

Perintah di atas akan menghasilkan hasil sebagai berikut.

Index: array.c
===================================================================
--- array.c   (revision 3)
+++ array.c   (working copy)
@@ -2,6 +2,24 @@
 
 #define MAX 16
 
+void accept_input(int *arr, int n)
+{
+   int i;
+
+   for (i = 0; i < n; ++i)
+      scanf("%d", &arr[i]);
+}
+
+void display(int *arr, int n)
+{
+   int i;
+
+   for (i = 0; i < n; ++i)
+      printf("|%d| ", arr[i]);
+   
+   printf("\n");
+}

+
 int main(void)
 {
    int i, n, arr[MAX];
@@ -15,15 +33,10 @@
    }
 
    printf("Enter the elements\n");
+   accept_input(arr, 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");
+   display(arr, n);
 
    return 0;
 }

Subversion hanya menampilkan perubahan Jerry , tetapi file array.c digabungkan. Jika diperhatikan dengan seksama, Subversion sekarang menampilkan revisi nomor 3. Pada keluaran sebelumnya terlihat revisi nomor 2. Tinjau saja siapa yang melakukan perubahan pada file tersebut dan untuk tujuan apa.

jerry@CentOS trunk]$ svn log
------------------------------------------------------------------------
r3 | tom   | 2013-08-18 20:21:50 +0530 (Sun, 18 Aug 2013)   | 1 line

Fix array overflow problem
------------------------------------------------------------------------
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
------------------------------------------------------------------------

Sekarang copy pekerjaan Jerry disinkronkan dengan repositori dan dia dapat dengan aman mengkomit perubahannya.

[jerry@CentOS trunk]$ svn commit -m "Add function to accept input and to display array contents"
Sending        trunk/array.c
Transmitting file data .
Committed revision 4.