GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Subversion:10 Perintah SVN yang Paling Banyak Digunakan dengan Contoh

SVN adalah singkatan dari Subversion.

Subversion adalah sistem kontrol versi sumber terbuka/gratis. Subversion mengelola file dan direktori dari waktu ke waktu. Sebuah pohon file ditempatkan ke dalam repositori pusat. Repositori sangat mirip dengan file server biasa, kecuali bahwa ia mengingat setiap perubahan yang pernah dibuat pada file dan direktori Anda. Ini memungkinkan Anda untuk memulihkan versi kode yang lebih lama, atau memeriksa riwayat bagaimana kode Anda diubah.

Artikel ini menjelaskan beberapa perintah SVN dasar dengan contoh.

SVN Working Copy

SVN adalah repositori yang menyimpan semua data berversi kami, yang juga disebut sebagai server SVN. Program klien SVN yang mengelola refleksi lokal dari bagian-bagian dari data berversi yang disebut sebagai copy pekerjaan. Klien SVN dapat mengakses repositorinya di seluruh jaringan. Beberapa pengguna dapat mengakses repositori secara bersamaan.

1. SVN Checkout – Buat copy pekerjaan

Perintah checkout digunakan untuk mengunduh sumber dari repositori SVN ke copy pekerjaan. Jika Anda ingin mengakses file dari server SVN, checkout adalah operasi pertama yang harus Anda lakukan.

SVN checkout membuat copy pekerjaan, dari mana Anda dapat mengedit, menghapus, atau menambahkan konten. Anda dapat checkout file, direktori, batang atau seluruh proyek. Untuk checkout, Anda harus mengetahui URL komponen yang ingin Anda checkout.

Syntax:

$ svn checkout/co URL PATH
  • URL adalah URL komponen yang akan diperiksa
  • Jika PATH dihilangkan, nama dasar URL akan digunakan sebagai tujuan. Jika beberapa URL diberikan, masing-masing akan diperiksa ke subdirektori PATH, dengan nama subdirektori menjadi nama dasar URL.

Contoh berikut memeriksa direktori ke direktori target yang diberikan.

$ svn co https://www.thegeekstuff.com/project/branches/release/migration/data/cfg /home/sasikala/cfg/
A    /home/sasikala/cfg/ftp_user.cfg
A    /home/sasikala/cfg/inventory.cfg
A    /home/sasikala/cfg/email_user.cfg
A    /home/sasikala/cfg/svn-commands
Checked out revision 811.

$ ls /home/sasikala/cfg
.  ..  .svn  email_user.cfg  ftp_user.cfg  inventory.cfg  svn-commands

Saat Anda melakukan checkout, itu membuat direktori tersembunyi bernama .svn, yang akan memiliki detail repositori.

2. SVN Commit – Simpan perubahan ke repositori

Setiap kali Anda melakukan perubahan pada copy pekerjaan, itu tidak akan tercermin di server SVN. Untuk membuat perubahan permanen, Anda perlu melakukan komit SVN.

Syntax:

$ svn commit -m "log messages"

Jelaskan mengapa Anda mengubah file dalam opsi -m.

Misalnya, dalam copy pekerjaan saya, file bernama “svn-commands” memiliki konten berikut.

$ cat /home/sasikala/cfg/svn-commands
checkout
commit
add
delete
update
status

$ ls -l /home/sasikala/cfg/svn-commands
-rw-r--r--  1 root root 41 Apr 16 11:15 svn-commands

Saya membuat perubahan pada file ini (misalnya, membuat file ini kosong).

$ ls -l svn-commands
-rw-r--r--  1 root root 0 Apr 16 11:20 svn-commands

Sekarang komit file untuk membuat perubahan permanen di server.

$ svn commit -m "Making the file empty" svn-commands
Sending        svn-commands
Transmitting file data .
Committed revision 813.

Setelah ini setiap kali Anda memperbarui copy pekerjaan atau checkout, perubahan akan muncul di server.

3. Daftar SVN – Mencantumkan entri direktori

svn list berguna ketika Anda ingin melihat konten repositori SVN, tanpa mengunduh copy pekerjaan.

Syntax:

$ svn list

Contoh berikut mencantumkan semua file yang tersedia di URL yang diberikan di repositori tanpa mengunduh copy pekerjaan. Saat Anda menjalankan perintah svn list dengan opsi –verbose, ini akan menampilkan informasi berikut.

  • Nomor revisi dari komit terakhir
  • Penulis komit terakhir
  • Ukuran (dalam byte)
  • Tanggal dan waktu komit terakhir
$ svn list --verbose https://www.thegeekstuff.com/project/branches/release/migration/data/bin
 16 sasikala	28361 	Apr 16 21:11 README.txt
 21 sasikala 	0 	Apr 18 12:22 INSTALL
 22 sasikala		Apr 18 10:17 src/

4. SVN Add – Tambahkan file baru ke repositori SVN

Saat Anda ingin menambahkan file (atau direktori) baru ke repositori, Anda perlu menggunakan perintah add SVN. Repositori akan memiliki file yang baru ditambahkan, hanya ketika Anda melakukan komit SVN. Sekarang mari kita tambahkan file baru bernama “thegeekstuff” ke repositori kita.

  • Buat file dalam copy pekerjaan lokal
  • $ ls -l /home/sasikala/cfg/thegeekstuff
    -rw-r--r--  1 sasikala root 8 Apr 16 11:33 thegeekstuff
  • Tambahkan file ke dalam repositori SVN
  • svn add filename akan menambahkan file ke dalam repositori SVN.

    $ svn add thegeekstuff
    A         thegeekstuff
  • Komit file yang ditambahkan
  • Sampai Anda melakukan commit, file yang ditambahkan tidak akan tersedia di repositori.

    $ svn commit -m "Adding a file thegeekstuff" thegeekstuff
    Adding         thegeekstuff
    Transmitting file data .
    Committed revision 814.

5. SVN Delete – Menghapus file dari repositori

Perintah hapus SVN menghapus item dari copy pekerjaan (atau repositori). File akan dihapus dari repositori saat Anda melakukan komit SVN.

Syntax:
$ svn delete URL

Sekarang mari kita hapus file yang baru saja dibuat bernama “thegeekstuff”.

$ svn delete thegeekstuff
D         thegeekstuff

$ svn commit -m "Removing thegeekstuff file" thegeekstuff
Deleting       thegeekstuff
Committed revision 814.

Sekarang Anda dapat melakukan svn list dan memeriksa apakah file telah dihapus dari repositori.

6. SVN Diff – Menampilkan perbedaan

SVN diff menampilkan perbedaan antara copy pekerjaan Anda dan copy di repositori SVN. Anda dapat menemukan perbedaan antara dua revisi dan dua jalur dll.,

Syntax:
$ svn diff filename

$ svn -r R1:R2 diff filename

Contoh di atas membandingkan namafile@R1 dan namafile@R2.

Sekarang isi file thegeekstuff terlihat seperti ini,

$ cat /home/sasikala/cfg/thegeekstuff
testing

Saya mengedit konten file geekstuff dari pengujian ke penguji, yang ditunjukkan di bawah ini menggunakan perintah svn diff.

$ svn diff thegeekstuff
Index: thegeekstuff
===================================================================
--- thegeekstuff   (revision 815)
+++ thegeekstuff   (working copy)
@@ -1 +1 @@
-testing
+tester

7. Status SVN – Status copy pekerjaan

Gunakan perintah status svn untuk mendapatkan status file dalam copy pekerjaan. Ini menampilkan apakah copy pekerjaan dimodifikasi, atau telah ditambahkan/dihapus, atau file tidak berada di bawah kendali revisi, dll.

Syntax:

$ svn status PATH

Contoh berikut menunjukkan status copy pekerjaan lokal saya,

$ svn status /home/sasikala/cfg
M    	/home/sasikala/cfg/ftp_user.cfg
M      	/home/sasikala/cfg/geekstuff

'M' menunjukkan bahwa item tersebut telah dimodifikasi. Perintah “svn help status” akan menjelaskan berbagai penentu yang ditampilkan dalam perintah status SVN.

8. Log SVN – Menampilkan pesan log

Seperti yang telah kita bahas di awal artikel ini, SVN mengingat setiap perubahan yang dilakukan pada file dan direktori Anda. Untuk mengetahui semua komit yang dibuat dalam file atau direktori, gunakan perintah log SVN.

Syntax:

$ svn log PATH

Berikut ini menampilkan semua komit yang dibuat pada file thegeekstuff

$ svn log thegeekstuff
------------------------------------------------------------------------
r815 | sasikala | 2011-04-16 05:14:18 -0700 (Sat, 16 Apr 2011) | 1 line

Adding a file thegeekstuff
------------------------------------------------------------------------

Karena kami hanya membuat satu komit dalam file thegeekstuff, ini hanya menampilkan satu pesan log dengan detailnya.

9. SVN Move – Ganti nama file atau direktori

Perintah ini memindahkan file dari satu direktori ke direktori lain atau mengganti nama file. File akan segera dipindahkan ke sandbox lokal Anda (juga di repositori setelah dikomit).

Syntax:
$ svn move src dest

Perintah berikut akan mengganti nama file “thegeekstuff” menjadi “tgs” dengan sekali tekan.

$ svn move thegeekstuff tgs
A         tgs
D         thegeekstuff

$ ls
.#  ..  .svn  email_user.cfg  ftp_user.cfg  inventory.cfg  tgs

Sekarang file tersebut diganti namanya hanya di copy pekerjaan, bukan di repositori. Untuk membuat perubahan permanen, Anda perlu melakukan perubahan.

$ svn commit -m "Renaming thegeekstuff to tgs" tgs
Adding         tgs
Transmitting file data .
Committed revision 816.

10. Pembaruan SVN – Perbarui copy pekerjaan.

perintah svn update membawa perubahan dari repositori ke copy pekerjaan Anda. Jika tidak ada revisi yang ditentukan, salinan pekerjaan Anda akan diperbarui dengan revisi KEPALA. Jika tidak, ini akan menyinkronkan copy pekerjaan dengan revisi yang diberikan dalam argumen.

Selalu sebelum Anda mulai mengerjakan copy pekerjaan Anda, perbarui copy pekerjaan Anda. Sehingga semua perubahan yang tersedia di repositori akan tersedia di copy pekerjaan Anda. yaitu perubahan terbaru.

Syntax:

$ svn update PATH

Jika beberapa pengguna lain menambahkan/menghapus file di URL, https://www.thegeekstuff.com/project/branches/release/migration/data/cfg, copy pekerjaan Anda tidak akan memiliki file tersebut secara default, sampai Anda memperbarui pekerjaan Anda salin.

$ svn update
A  new/usercfg
A  new/webcfg
Updated to revision 819.

Pada output perintah svn update di atas, A menyatakan bahwa file ini “Ditambahkan” ke copy pekerjaan.


Linux
  1. 10+ perintah Linux VI dengan contoh

  2. Perluas Dan Hapus Tutorial Perintah Dengan Contoh

  3. lsof :Contoh yang paling umum digunakan

  1. [Linux]:15 Perintah YUM yang paling sering digunakan dengan contoh

  2. vim Tutorial dengan Contoh Perintah

  3. Perintah Linux Paling Sederhana Dengan 10 Contoh

  1. Tutorial Bash HereDoc Dengan Contoh

  2. 19 Perintah SSH Umum di Linux Dengan Contoh

  3. Tutorial Bash Array Terbaik dengan 15 Contoh