Gentoo Logo

Tutorial CVS Gentoo Linux

Daftar Isi:

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: (masukkan password di sini)

# 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
(output dipotong)

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.



Print

Diperbarui 23 Mei 2005

Versi asli dari dokumen ini terakhir diupdate 20 Mei 2008

Rangkuman: Tutorial ini memperkenalkan CVS, Concurrent Versions System, digunakan oleh para pengembang di seluruh dunia untuk mengembangkan software dengan cara kolaborasi dan fleksibel. Diperuntukkan bagi pengguna baru CVS, tutorial ini akan memberikan pemahaman yang cepat baik untuk pengguna biasa maupun para pengembang. Apakah anda ingin menggunakan CVS untuk men- "check out" source terbaru dari paket software tertentu atau anda ingin mulai menggunakan CVS karena anda baru menjadi pengembang, tutorial ini sangat cocok untuk anda.

Daniel Robbins
Author

Xavier Neys
Editor

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.