Tutorial CVS Gentoo Linux
1.
Pendahuluan
Layout tutorial
Tutorial ini memiliki dua bagian. Bagian pertama berisi cara menggunakan CVS
bagi anda yang bukan pengembang, misalnya cara mendapatkan source dari CVS dan
menjaganya tetap up-to-date. Bagian kedua memperkenalkan cara
menggunakan CVS bagi para pengembang, seperti cara memodifikasi, menambahkan
dan menghapus file di CVS dan menjalankan berbagai tugas terkait pengembangan
lainnya. Jika anda baru menggunakan CVS, anda dianjurkan untuk memulai dari
bagian pertama dan melanjutkan ke bagian kedua; jika anda sudah memiliki
pengalaman dasar menggunakan CVS tetapi akan menggunakan CVS sebagai pengembang
untuk pertama kalinya, anda dapat menemukan semua yang anda perlukan pada
bagian kedua, tetapi anda juga mungkin perlu membaca bagian pertama untuk
menyegarkan ingatan anda.
Apa itu CVS dan apa yang dikerjakannya?
CVS adalah sistem klien/server yang digunakan oleh pengembang untuk menyimpan
proyeknya di sebuah lokasi sentral, disebut sebagai repository.
Menggunakan cvs sebagai klien, seorang pengembang dapat membuat perubahan pada
isi repositori. Sebaliknya, repositori cvs mencatat semua perubahan yang
terjadi pada setiap file, menciptakan catatan lengkap tentang evolusi dari
proyek tersebut. Pengembang dapat meminta versi lama dari sebuah file source
tertentu, melihat catatan perubahan, dan menjalankan tugas-tugas lain sesuai
dengan kebutuhannya.
Tugas CVS
Kebanyakan proyek software open source memiliki server cvs-nya sendiri yang
digunakan oleh para pengembang proyek tersebut sebagai repositori pusat dari
pekerjaan mereka. Para pengembang sering membuat perbaikan pada source di
repositori cvs setiap hari; dan biasanya, lokasi para pengembang ini tersebar
di seluruh dunia, namun cvs dapat menyediakan mekanisme yang diperlukan untuk
menyatukan proyek mereka pada kesatuan yang terpusat. CVS menciptakan
"organizational glue" yang dengannya, para pengembang dapat membuat
perbaikan pada kode-kode mereka tanpa ada bentrokan, kehilangan data atau
ketertinggalan atas pembaruan data yang penting pada file source tertentu.
CVS -- source terbaru para pengembang
Ketika para pengembang sudah siap, mereka akan memampatkan hasil kerja mereka
saat ini di cvs pada sebuah file tar.gz dan merilisnya sebagai
versi resmi baru dari paket software mereka. Namun, terkadang rilis resmi
terasa masih belum cukup, dikarenakan berbagai macam alasan. Pada bagian
pertama dari tutorial ini, kami akan memberikan cara menggunakan cvs untuk
tujuan tersebut -- mendapatkan versi pengembang yang terbaru dan terbaik dari
source untuk penggunaan pribadi.
Instalasi CVS
Untuk menginstal cvs, ketik saja emerge cvs:
Daftar Kode 1.1: Instalasi CVS |
# emerge cvs
|
CVSROOT
Sebelum memulai, ada beberapa dasar-dasar cvs yang perlu anda ketahui. Yang
pertama adalah, untuk dapat terhubung ke sebuah repositori cvs, pertama anda
perlu mengenal sebuah path bernama "CVSROOT". CVSROOT adalah string,
seperti URL, yang memberitahukan letak repositori kepada perintah cvs juga cara
yang dipakai untuk melakukan koneksi. Agar lebih menarik, cvs memiliki banyak
format CVSROOT, tergantung pada repositori cvs, apakah lokal atau jauh, juga
metode apa yang akan digunakan untuk melakukan koneksi. Berikut ini adalah
beberapa contoh CVSROOT bersama penjelasannya.
CVSROOT Lokal
Daftar Kode 1.2: Pengaturan CVSROOT |
CVSROOT=/var/cvsroot
|
Ini adalah contoh dari path CVSROOT lokal; anda perlu menggunakan CVSROOT
seperti ini jika anda ingin terhubung ke repositori lokal yang terletak di
/var/cvsroot; atau mungkin ada memiliki repositori yang telah
di-mount melalui NFS di /var/cvsroot.
CVSROOT untuk server jauh dengan password
Daftar Kode 1.3: Pengaturan CVSROOT dengan otentikasi |
CVSROOT=:pserver:cvs@foo.bar.com:/var/cvsroot
|
Ini adalah contoh CVSROOT untuk repositori jauh yang terletak di komputer
foo.bar.com di dalam direktori /var/cvsroot. Awalan ":pserver:"
memerintahkan klien kita untuk melakukan koneksi dengan protokol server
password CVS, protokol built-in CVS. Biasanya, repositori untuk umum
menggunakan protokol ini untuk memberikan akses bagi pengguna anonymous.
CVSROOT rsh/ssh jauh
Daftar Kode 1.4: CVSROOT RSH/SSH |
CVSROOT=drobbins@foo.bar.com:/data/cvs
|
Ini adalah contoh CVSROOT yang menggunakan protokol RSH/SSH; pada contoh ini,
klien CVS akan mencoba untuk mengakses repositori di foo.bar.com menggunakan
akun drobbins. Jika variabel CVS_RSH berisi "ssh", maka klien cvs kita
akan mencoba untuk menggunakan ssh ketika melakukan koneksi, jika tidak, maka
rsh akan digunakan. Metode akses ssh banyak digunakan oleh mereka yang
mengutamakan keamanan; namun, metode RSH maupun SSH tidak menyediakan cara
apapun untuk memberikan izin kepada pengguna anonymous. Untuk
menggunakan metode ini, anda harus memiliki akun login di foo.bar.com.
Beberapa hal lainnya...
Sebagai tambahan dari CVSROOT, anda juga perlu mengetahui nama modul (koleksi
dari source) yang ingin anda lihat, juga password anonymous yang anda perlukan
untuk masuk ke server password CVS. Tidak seperti ftp anonymous, tidak ada
format "standar" untuk password anonymous, jadi anda perlu mendapatkan
passwordnya dari website pengembang atau langsung dari para pengembang. Setelah
anda mendapatkannya, anda siap memulai.
Berinteraksi dengan CVS, bagian 1
Mengambil source adalah proses dua langkah. Pertama, kita masuk ke server
password. Kemudian mengambil source dengan perintah checkout. Berikut
ini adalah kumpulan contoh dari perintah-perintah yang dapat anda gunakan untuk
melihat source Samba terbaru, proyek integrasi UNIX/Windows yang terkenal:
Daftar Kode 1.5: Pengaturan CVSROOT |
# export CVSROOT=:pserver:cvs@pserver.samba.org:/cvsroot
|
Perintah pertama mengatur variabel lingkungan CVSROOT. Jika anda tidak mengatur
variabel ini, kedua perintah di bawah ini memerlukan tambahan -d
:pserver:cvs@pserver.samba.org:/cvsroot setelah perintah cvs. Kita
dapat sedikit menghemat waktu dengan menetapkan nilai variabel CVSROOT.
Berinteraksi dengan CVS, bagian 2
Berikut ini adalah perintah-perintah yang diperlukan untuk mendapatkan salinan
terbaru dari source pengembang. Anda boleh langsung loncat untuk membaca
penjelasannya kemudian kembali lagi:
Daftar Kode 1.6: Mengambil source terbaru |
# cvs login
(Logging in to cvs@pserver.samba.org)
CVS password:
# cvs -z5 co samba
U samba/COPYING
U samba/Manifest
U samba/README
U samba/Read-Manifest-Now
U samba/Roadmap
U samba/WHATSNEW.txt
|
Berinteraksi dengan CVS -- penjelasan
Perintah cvs pertama di atas menghubungkan kita ke pserver, dan perintah kedua
memerintahkan klien CVS untuk mengambil ("co") modul samba dengan kompresi gzip
tingkat 5 ("-z5") untuk mempercepat transfer memalui jalur lambat. Untuk setiap
file baru yang didapatkan, cvs menampilkan "U [path]" yang menandakan bahwa
file tersebut di disk telah diperbarui.
Checkout selesai
Setelah perintah checkout selesai dijalankan, anda akan melihat direktori
"samba" di dalam direktori anda saat ini yang berisi source terbaru. Anda juga
akan melihat bahwa semua direktori memiliki direktori CVS di
dalamnya -- CVS menyimpan informasi akun di dalam
direktori-direktori tersebut, dan anda dapat mengabaikannya. Dari sini, kita
tidak perlu lagi khawatir tentang variabel CVSROOT karena variabel ini telah
dicatat di dalam semua direktori CVS tambahan tadi. Jangan lupa,
anda hanya perlu mengatur CVSROOT ketika melakukan login dan checkout untuk
pertama kali.
Memperbarui source
Nah, itu dia -- source terbaru! Setelah anda mendapatkannya, anda boleh
melakukan kompilasi dan menginstalnya, melakukan pengujian atau apapun yang
anda inginkan.
Selanjutnya, anda mungkin ingin mengsinkronkan direktori source anda dengan
versi CVS saat ini. Untuk melakukannya, anda tidak perlu login ke pserver;
informasi otentikasi anda telah direkam oleh cvs di dalam direktori
CVS tadi. Pertama, masuklah ke direktori check-out utama
(pada contoh ini adalah "samba"), lalu ketik:
Daftar Kode 1.7: Memperbarui source |
# cvs update -dP
|
Melihat "cvs update", bagian 1
Jika ada file baru, cvs akan memberikan output baris "U [path] untuk setiap
file yang diperbaruinya. Dan, jika anda sudah pernah mengkompilasi file
tersebut, anda mungkin akan melihat banyak baris "? [path]"; ini adalah
file-file objek yang diketahui cvs bukan berasal dari repositori.
Melihat "cvs update", bagian 2
Perhatikan juga dua opsi baris perintah yang kita gunakan untuk "cvs update".
-d memerintahkan cvs untuk menciptakan direktori baru yang mungkin telah
ditambahkan di repositori (secara default ini tidak dilakukan), dan -P
memerintahkan cvs untuk membuang direktori kosong apapun dari salinan lokal.
-P baik digunakan karena cvs sering mengambil banyak direktori kosong
(yang dulu digunakan, sekarang tidak lagi).
Jika anda hanya ingin mengambil source terbaru, itu saja yang perlu anda
ketahui. Sekarang, kita akan melihat cara berinteraksi dengan CVS sebagai
pengembang.
2.
CVS untuk pengembang
Merubah file
Sebagai pengembang, anda mungkin perlu merubah file tertentu di CVS. Untuk
melakukannya, lakukan perubahan yang diperlukan pada file di salinan lokal
anda. Perubahan yang anda buat tidak akan diterapkan di repositori sampai anda
memerintahkan cvs untuk meng-commit perubahan tersebut. Ketika anda
sudah menguji perubahan anda untuk memastikan bahwa tidak ada kekeliruan dan
anda sudah siap untuk menerapkan perubahan tersebut di repositori, ikutilah
proses dua tahap berikut. Pertama, perbarui source lokal anda dengan perintah
berikut dari direktori source utama:
Daftar Kode 2.1: Memperbarui source dan direktori |
# cvs update -dP
|
CVS menggabungkan perubahan dari pengembang lain
Seperti yang telah kita lihat sebelumnya, "cvs update" akan menyamakan salinan
source anda dengan versi saat ini di repositori -- tetapi apa yang terjadi pada
perubahan yang anda buat? Jangan takut, perubahan ini tidak dibuang. Jika anda
pengembang lain yang telah membuat perubahan pada sebuah file yang belum anda
sentuh, file lokal anda akan diperbarui agar sama dengan versi yang ada di
repositori.
Dan, jika anda telah melakukan perubahan pada baris 1-10 dari sebuah file
lokal, sedangkan pengembang lain menghapus baris 40-50, menambahkan 12 baris
pada akhir file, merubah baris 30-40 lalu menerapkan perubahan tersebut pada
repositori sebelum anda, cvs dengan cerdik akan menggabungkan semua perubahan
tersebut pada file lokal anda yang telah anda modifikasi tanpa menghapus
perubahan yang telah anda buat. Dengan begini, dua pengembang atau lebih dapat
bekerja pada bagian berbeda dari satu file dalam satu waktu.
Penggabungan tidak selalu sempurna
Bagaimanapun juga, jika ada dua pengembang atau lebih yang melakukan perubahan
pada bagian yang sama dari satu file, maka situasinya akan lebih rumit.
Jika hal ini terjadi, maka cvs akan memberitahukan anda tentang konflik
tersebut. Perubahan anda tidak akan hilang, tetapi anda diharuskan untuk
melakukan perbaikan secara manual, karena cvs memerlukan masukan dari anda
tentang cara menggabungkan perubahan yang saling konflik.
Commit
Sebentar lagi kita akan melihat bagaimana cara mengatasi konflik, tetapi
sekarang, kita anggap tidak ada konflik yang terjadi setelah anda mengetikkan
cvs update -dP -- karena biasanya tidak ada. jika tidak ada konflik,
source lokal anda sudah diperbarui, dan anda siap untuk menerapkan perubahan
pada repositori dengan mengetikkan perintah berikut dari dalam direktori source
anda:
Daftar Kode 2.2: Menerapkan perubahan |
# cvs commit
|
Apa yang dilakukan oleh commit
cvs commit tidak hanya menerapkan perubahan anda di repositori.
Sebelum menerapkan perubahan anda di repositori, cvs akan meluncurkan editor
default anda agar anda dapat mengetikkan penjelasan tentang perubahan yang anda
buat. Kemudian cvs akan menyimpan perubahan anda serta menutup editor, dan
perubahan (serta komentar) anda akan diterapkan di repositori dan akan tersedia
untuk pengembang lain di tim anda.
Melihat log
Melihat sejarah lengkap dari sebuah file beserta komentar yang diberikan oleh
pengembang (termasuk anda sendiri) ketika menerapkan perubahan sangatlah mudah.
Untuk melihatnya, ketikkan:
Daftar Kode 2.3: Melihat informasi log |
# cvs log file.c
|
Perintah cvs log dijalankan secara recursive, jadi jika anda
ingin melihat semua log dari seluruh isi direktori, masuklah ke direktori lalu
ketik:
Daftar Kode 2.4: Melihat informasi log dengan pager |
# cvs log | less
|
Opsi-opsi commit
Anda mungkin ingin menggunakan editor yang berbeda dari editor yang dijalankan
oleh cvs ketika anda mengetik cvs commit. Jika begitu, isi variabel
EDITOR dengan nama editor yang ingin anda gunakan. Pengaturan ini baik sekali
untuk dilakukan di ~/.bashrc:
Daftar Kode 2.5: Pengaturan editor |
export EDITOR=jpico
|
Atau, anda juga dapat menuliskan pesan log sebagai opsi beris perintah agar cvs
tidak perlu lagi meluncurkan editor:
Daftar Kode 2.6: Menerapkan perubahan dengan memberikan sedikit informasi log |
# cvs commit -m 'I fixed a few silly bugs in portage.py'
|
File .cvsrc
Sebelum kita berlanjut untuk melihat perintah-perintah cvs lainnya, kami
anjurkan anda untuk membuat file ~/.cvsrc. Dengan menciptakan file
.cvsrc di direktori home, anda dapat memerintahkan cvs untuk
menggunakan opsi-opsi baris perintah default yang telah anda pilih agar anda
tidak perlu lagi mengetikkannya. Berikut ini adalah file .cvsrc
default yang dianjurkan:
Daftar Kode 2.7: Nilai-nilai default yang dianjurkan |
cvs -q
diff -u -b -B
checkout -P
update -d -P
|
File .cvsrc, lanjutan
Sebagai tambahan dari pengaturan opsi-opsi default perintah cvs, baris pertama
dari file .cvsrc menempatkan cvs pada modus quiet, yang
menjadikan output dari perintah cvs update lebih rapi dan mudah dibaca.
Juga, jika anda telah meletakkan opsi ini di file .cvsrc. anda
tidak perlu lagi mengetikkan cvs update -dP, tetapi cukup cvs
update.
Menambahkan file baru di repositori
Menambahkan file baru di CVS sangatlah mudah. Pertama, ciptakan file tersebut
dengan editor, kemudian ketikkan perintah berikut:
Daftar Kode 2.8: Menambahkan file |
# cvs add file.c
cvs server: use 'cvs commit' to add this file permanently
|
Ini akan memerintahkan cvs untuk menambahkan file tersebut ke repositori ketika
anda melakukan cvs commit nantinya. Sebelum anda melakukannya,
pengembang lain tidak akan dapat melihat file baru tersebut.
Menambahkan direktori baru di repositori
Proses penambahan direktori di CVS juga hampir sama:
Daftar Kode 2.9: Menambahkan direktori |
# mkdir foo
# cvs add foo
Directory /var/cvsroot/mycode/foo added to the repository
|
Tidak seperti menambahkan file, ketika anda menambahkan sebuah direktori baru,
perubahan akan langsung diterapkan; cvs commit tidak diperlukan. Ketika anda
menambahkan direktori lokal di cvs, anda akan melihat sebuah direktori
CVS baru diciptakan di dalamnya yang bertindak sebagai penampung
data cvs. Jadi, anda dapat memastikan apakah sebuah direktori telah ditambahkan
di repositori dengan mencari direktori CVS di dalamnya.
Catatan "cvs add"
Oh, dan seperti yang sudah anda duga, sebelum anda menambahkan sebuah file atau
direktori di repositori, anda harus memastikan agar direktori di atasnya telah
ditambahkan di CVS. Jika tidak, anda akan mendapatkan pesan error seperti
berikut:
Daftar Kode 2.10: Menambahkan file baru, tetapi gagal |
# cvs add myfile.c
cvs add: cannot open CVS/Entries for reading: No such file or directory
cvs [add aborted]: no repository
|
Akrab dengan "cvs update", bagian 1
Sebelum kita melihat cara mengatasi konflik, sebaiknya kita akrab dulu dengan
output dari perintah cvs update. Jika anda telah menciptakan file
~/.cvsrc yang berisi baris cvs -q, anda akan melihat output
perintah cvs update yang lebih mudah dibaca. cvs update
memberikan informasi tentang apa yang dilakukan dan dilihatnya dengan mencetak
sebuah karakter, spasi dan nama file; seperti pada contoh berikut:
Daftar Kode 2.11: Memperbarui CVS |
# cvs update -dP
? distfiles
? packages
? profiles
|
Akrab dengan "cvs update", bagian 2
cvs update menggunakan karakter "?" untuk memberitahukan anda bahwa ia
tidak mengetahui apapun tentang file tersebut yang ditemukannya di salinan
lokal repositori anda. File ini berarti bukan bagian resmi dari repositori,
juga tidak dijadawalkan untuk ditambahkan. Berikut ini adalah daftar karakter
tunggal lain yang digunakan oleh CVS sebagai pesan informasi:
Daftar Kode 2.12: Pesan informasi: U |
U [path]
|
Digunakan ketika file baru telah diciptakan di salinan lokal, atau file yang
tidak disentuh (oleh anda) telah diperbarui.
Daftar Kode 2.13: Pesan informasi: A |
A [path]
|
File ini telah dijadwalkan untuk ditambahkan dan akan ditambahkan secara resmi
di repositori ketika anda melakukan cvs commit.
Akrab dengan "cvs update", bagian 3
Daftar Kode 2.14: Pesan informasi: R |
R [path]
|
Seperti "A", "R" memberitahukan anda bahwa file ini telah dijadwalkan untuk
dihapus. File tersebut akan dihapus dari repositori ketika anda melakukan
cvs commit.
Daftar Kode 2.15: Pesan informasi: M |
M [path]
|
Artinya file ini telah dimodifikasi oleh anda; sebagai tambahan, mungkin saja
perubahan dari repositori telah digabungkan pada file ini dengan sukses.
Daftar Kode 2.16: Pesan informasi: C |
C [path]
|
Karakter "C" menandakan bahwa file ini berisi konflik dan membutuhkan
perbaikan secara manual sebelum anda dapat menerapkan perubahan anda.
Pengantar penyelesaian konflik
Sekarang, mari kita lihat cara mengatasi konflik. Penulis sangat terlibat dalam
proyek Gentoo Linux, dan kami memiliki server cvs kami sendiri di
cvs.gentoo.org. Kami, para pengembang, menghabiskan waktu kami dengan
mengutak-atik source di dalam modul "gentoo-x86". Di dalamnya, ada sebuah file
bernama ChangeLog yang berisi (seperti dugaan anda) penjesalan
tentang perubahan yang telah kami terapkan pada file tersebut di repositori.
Contoh konflik
Karena file ini di hampir selalu mengalami perubahan ketika seorang pengembang
menerapkan perubahan di CVS, maka file ini adalah sumber konflik -- inilah
contoh konflik. Anggaplah penulis menambahkan beberapa baris berikut di bagian
atas ChangeLog:
Daftar Kode 2.17: Entri ChangeLog |
date 25 Feb 2001
This is the thing I added myself
|
Namun, katakanlah sebelum penulis menerapkan perubahan tersebut, seorang
pengembang lain telah menambahkan baris-baris yang sama di bagian atas
ChangeLog dan menerapkan perubahan tersebut:
Daftar Kode 2.18: Entri 2 ChangeLog |
date 25 Feb 2001
This is the part added by another developer
|
Contoh konflik, lanjutan
Sekarang, ketika penulis menjalankan cvs update -dP (seperti yang selalu
kita lakukan sebelum melakukan commit), cvs tidak dapat menggabungkan perubahan
tersebut di salinan lokal ChangeLog milik penulis karena penulis
dan pengembang lain telah menambahkan beberapa baris di bagian yang sama dari
file -- bagaimana cvs tahu versi apa yang harus digunakan? Untuk itu, penulis
mendapatkan pesan error berikut dari CVS:
Daftar Kode 2.19: Error CVS |
RCS file: /var/cvsroot/gentoo-x86/ChangeLog,v
retrieving revision 1.362
retrieving revision 1.363
Merging differences between 1.362 and 1.363 into ChangeLog
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in ChangeLog
C ChangeLog
|
Resolusi konflik, bagian 1
Argh -- konflik! Untungnya, mengatasi konflik sangatlah mudah. Jika penulis
membuka editor, penulis akan melihat teks barikut di bagian atas file
ChangeLog:
Daftar Kode 2.20: Konflik ChangeLog |
<<<<<<< ChangeLog
date 25 Feb 2001
This is the thing I added myself
=======
date 25 Feb 2001
This is the part added by another developer
>>>>>>> 1.363
|
Resolusi konflik, bagian 2
Daripada harus memilih salah satu versi, cvs menambahkan kedua versi pada file
ChangLog, dan mengurungnya dengan pemisah khusus untuk memberikan tanda yang
jelas tentang konflik yang tejadi. Sekarang, saatnya bagi penulis untuk membuat
perubahan pada bagian ini dengan memberikan teks yang seharusnya
ditampilkan di ChageLog; pada contoh ini, teks pengganti tidak
diambil dari salah satu versi, namun penggabungan dari keduanya:
Daftar Kode 2.21: Entri ChangeLog |
date 25 Feb 2001
This is the thing I added myself
This is the part added by another developer
|
Setelah penulis melakukan perubahan pada bagian yang berisi konflik dengan teks
yang sesuai (dan menghapus tanda "======", dll), penulis dapat menerapkan
perubahan di cvs tanpa masalah apapun.
Saran-saran terkait resolusi konflik
Kapanpun anda ingin mengedit file yang berisi konflik, pastikan anda telah
melihat seluruh isi file agar tidak ada konflik lain yang tertinggal; jika anda
melewatkan salah satu konflik, cvs tidak akan mengizinkan anda untuk menerapkan
perubahan anda sampai semua konflik diselesaikan! Jelas sekali bahwa anda harus
menghapus tanda-tanda khusus yang ditambahkan oleh cvs pada file berisi konflik
tersebut. Saran lain -- jika anda melakukan kesalahan ketika melakukan
perbaikan kemudian ("Aduh!) menyimpan perubahan anda dengan tidak sengaja, anda
bisa mendapatkan salinan asli dari versi anda di file
.#namafile.versi.
Menghapus file
Sekarang saatnya untuk pelajaran terakhir tentang CVS -- menghapus file dari
repositori. Menghapus file adalah proses dua tahap. Pertama, hapus file dari
salinan source lokal, kemudian jalankan perintah cvs remove:
Daftar Kode 2.22: Menghapus file |
# rm filelama.c
# cvs remove filelama.c
|
Menghapus file, lanjutan
File tersebut telah dijadwalkan untuk dihapus dari repositori ketika anda
melakukan commit. Ketika anda melakukannya, file tersebut akan dihapus secara
resmi dari repositori. Bagaimanapun juga, cvs tidak akan membuang file ini dan
akan tetap menyimpan catatan lengkap tentang isi dan sejarahnya, sebagai
antisipasi jika anda membutuhkannya kembali nanti. Inilah salah satu cara cvs
untuk melindungi kode sumber anda yang bernilai.
cvs remove dijalankan secara recursive, artinya, anda dapat
menghapus banyak file, kemudian menjalankan perintah cvs remove dari
direktori di atasnya tanpa argumen tambahan. Dengan ini, file-file tersebut
akan dijadwalkan untuk dihapus pada commit selanjutnya.
Menghapus direktori
Jika anda ingin menghapus sebuah direktori beserta seluruh isinya, penulis
sarankan anda untuk melakukan proses berikut ini. Pertama, hapus dan cvs
remove semua file di dalam direktori:
Daftar Kode 2.23: Menghapus direktori beserta isinya |
# rm *.c
# cvs remove
|
Menghapus direktori, lanjutan
Selanjutnya, lakukan commit:
Daftar Kode 2.24: Menerapkan perubahan |
# cvs commit
|
Di sinilah triknya. Lakukan langkah-langkah berikut untuk menghapus direktori:
Daftar Kode 2.25: Menghapus direktori |
# cd ..
# cvs remove mydir
# rm -rf mydir
|
Perlu dicatat bahwa menghapus direktori tidak memerlukan commit tambahan --
direktori akan langsung ditambahkan dan dihapus dari repositori.
Selesai!
Perkenalan anda dengan CVS sudah selesai -- penulis harap tutorial ini dapat
membantu. Masih banyak yang dapat dilakukan dengan CVS daripada apa yang telah
dicantumkan di sini, tetapi untungnya tersedia banyak sumber-sumber pengetahuan
tentang CVS yang dapat anda gunakan untuk memperluas pengetahuan anda:
Tentang dokumen ini
Versi asli dari artikel ini pertama kali diterbitkan di IBM developerWorks, dan
merupakan properti dari Westtech Information Services. Dokumen ini merupakan
versi update dari artikel aslinya, dan berisi banyak perbaikan dari tim
dokumentasi Gentoo Linux.
|