SVN - Tinjau Perubahan

Jerry sudah menambahkan file array.c ke repositori. Tom juga memeriksa kode terbaru dan mulai bekerja.

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

Perintah di atas akan menghasilkan hasil sebagai berikut.

A    project_repo/trunk
A    project_repo/trunk/array.c
A    project_repo/branches
A    project_repo/tags
Checked out revision 2.

Namun, dia menemukan bahwa seseorang telah menambahkan kode tersebut. Jadi dia ingin tahu siapa yang melakukan itu dan dia memeriksa pesan log untuk melihat lebih detail menggunakan perintah berikut:

[tom@CentOS trunk]$ svn log

Perintah di atas akan menghasilkan hasil sebagai berikut.

------------------------------------------------------------------------
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
------------------------------------------------------------------------

Ketika Tom mengamati kode Jerry , dia segera melihat adanya bug di dalamnya. Jerry tidak memeriksa luapan larik, yang dapat menyebabkan masalah serius. Jadi Tom memutuskan untuk memperbaiki masalah ini. Setelah modifikasi, array.c akan terlihat seperti ini.

#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 ingin menggunakan operasi status untuk melihat daftar perubahan yang tertunda.

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

file array.c diubah, itulah mengapa Subversion munculMhuruf sebelum nama file. Selanjutnya Tom mengkompilasi dan menguji kodenya dan itu berfungsi dengan baik. Sebelum melakukan perubahan, dia ingin memeriksanya kembali dengan meninjau perubahan yang dia buat.

[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 telah menambahkan beberapa baris di file array.c , itulah mengapa Subversion muncul + tanda tangani sebelum baris baru. Sekarang dia siap untuk melakukan perubahannya.

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

Perintah di atas akan menghasilkan hasil sebagai berikut.

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

Perubahan Tom berhasil dilakukan ke repositori.