Penjejakan Versi Dengan Subversion (SVN) Untuk Pemula
Pernahkah anda mahu bekerja pada projek dengan keupayaan untuk mengesan perubahan anda dan mengembalikannya? How-To Geek menjelaskan Bagaimana-Untuk menggunakan sistem pengesanan versi popular, Subversion (a.k.a SVN).
Imej dengan jelas jelas
Prelog
Panduan ini bertujuan untuk memberi anda keupayaan untuk menggunakan pelanggan subversi pada umumnya, dan, jika anda mempunyai satu, pada router * DD-WRT anda. Panduan ini tidak semestinya menjadi panduan definitif untuk Subversion dan banyak maklumat boleh didapati di Buku Red Subversi. Panduan ini hanya bertujuan untuk memberi anda jawapan singkat kepada soalan-soalan yang paling asas.
Gambaran keseluruhan
Terdapat banyak alasan mengapa anda ingin "melancarkan" kod terkini untuk projek perisian yang menggunakan sistem pengubah versi. Melakukannya membolehkan anda mendapat manfaat daripada perubahan terkini yang masih belum dirilis, membantu dengan ujian dan bahkan pembangunan. Dalam panduan ini, kami akan meninjau beberapa istilah asas SVN, menunjukkan cara memasang klien SVN di Linux, Windows dan jika anda mempunyai satu router OPKG anda yang membolehkan router DD-WRT. Kami juga telah memasukkan contoh projek yang boleh anda selesaikan dan gunakan untuk penghala tersebut.
Apa itu Subversion?
Subversion bukanlah satu-satunya sistem kawalan versi yang wujud dan alternatif termasuk Git (yang dibuat oleh Linus Torvalds pengasas kernel Linux), Mercurial dan PerForce untuk menamakan beberapa. Dengan itu, ia adalah salah satu yang percuma, ia matang dan digunakan secara meluas di seluruh dunia.
Daripada "Red Book" Subversion:
Subversion adalah sumber bebas / terbuka sistem kawalan versi (VCS). Iaitu, Subversion menguruskan fail dan direktori, dan perubahan yang dibuat kepada mereka, dari masa ke masa. Ini membolehkan anda mendapatkan versi lama data anda atau memeriksa sejarah bagaimana data anda berubah. Dalam hal ini, ramai orang memikirkan sistem kawalan versi sebagai sejenis "mesin masa".
Nota: Buku ini adalah pengumpulan pengetahuan utama tentang subversi dan anda dinasihatkan merujuknya pada semua topik berkaitan Subversion.
Apa yang Versi?
Versioning adalah proses di mana keadaan sesuatu projek pada satu-satu masa disimpan. Prosedur semacam ini sering digunakan untuk menguruskan pembangunan perisian, supaya kerja boleh terus memperbaiki projek atau menambahkan ciri, sambil dapat menjejaki apa yang telah berubah dari titik "save" keseluruhan terakhir. Untuk menguraikan, prosedur semacam ini boleh berguna untuk satu orang tetapi lebih-lebih lagi untuk sekelompok orang, semuanya bekerja pada projek yang sama. Ini kerana, biasanya, apabila mengerjakan projek sebagai satu kumpulan, terdapat pengagihan tanggungjawab dan orang lain mengubah aspek-aspek yang berlainan dalam projek. Tanpa mekanisme pembubaran, ia akan menjadi sangat sukar untuk memastikan setiap orang menyelaraskan perubahan terkini dari orang lain.
Terminologi
Repositori
Repositori adalah lokasi di mana semua data dari semua tempat disimpan. Dalam dunia subversi, dari sudut pandangan pelanggan, ia adalah pelayan yang memegang pangkalan data projek. Pangkalan data ini mengandungi semua fail yang merupakan sebahagian daripada projek dengan semua versi terdahulu mereka.
Ulang kaji
Apabila repository dicipta, ia akan diberikan nombor semakan sifar (0). Nombor ini ditambah dengan satu (1) setiap kali komitmen dilakukan. Nombor semakan adalah global untuk repositori. Iaitu, tidak ada nombor semakan individu untuk fail individu dalam repositori, walaupun tiada apa yang berubah dalam fail itu untuk komit tertentu itu.
Salinan Kerja
Salinan kerja adalah salinan tempatan (atau "daftar keluar") versi tertentu. Biasanya versi ini apabila diperiksa adalah "terkini" (juga dikenali sebagai "kepala"), tetapi yang terdahulu boleh diminta. Pengguna boleh lakukan dengan salinan tempatan apa sahaja yang mereka kehendaki, dengan pengetahuan bahawa, paling buruk, mereka hanya boleh melengkapkan kod itu lagi. Tambahan pula, salinan ini "peribadi". Ini adalah kerana sehingga anda mengemas kini atau membuat salinan anda, anda tidak akan melihat perubahan orang lain, dan tidak akan melihat anda.
Mengemas kini & menyelesaikan Konflik
Salinan kerja Tempatan boleh dikemas kini. Iaitu, Jika anda "menyemak" versi tertentu, dan semasa anda sedang bekerja, versi di repositori telah dikemas kini, anda boleh mengemas kini salinan kerja anda kepada yang terkini. Malah, pelayan akan menghalang anda daripada melakukan perubahan anda sebelum anda mengemas kini ke versi terkini untuk menyesuaikan repositori. Ini dilakukan untuk memaksa anda menyelesaikan konflik di dalam negara, sebelum anda memikirkan melakukan perubahan pada repositori.
Penggabungan
Penggabungan merujuk kepada proses yang mana, mengubah kod dicampur menjadi satu versi. Ia juga mungkin melibatkan konflik menyelesaikan.
Berjaya
Melakukan adalah proses di mana perubahan yang telah anda buat ke salinan setempat anda akan digabungkan kembali ke repositori. Ini adalah bahagian yang paling berbahaya dalam proses ini, kerana di sini perubahan yang telah dibuat, mungkin memberi kesan kepada orang lain menggunakan repositori yang sama. Itulah sebabnya ini biasanya dilakukan selepas pertimbangan, dengan persetujuan pasukan dan selepas anda menyelesaikan sebarang konflik yang bergabung.
Aliran Kerja
Aliran kerja yang paling asas dari perspektif pengguna apabila menggunakan subversi ialah:
1. Semak kod sedia ada (biasanya "kepala").
2. Buat perubahan, tambahkan fail dan umumkan kod.
3. Kemaskini kepada versi terkini, untuk memastikan salinan setempat anda selaras dengan kemas kini pada repositori.
4. Menggabungkan secara tempatan dan menyelesaikan konflik jika perlu.
5. Lakukan perubahan yang digabungkan ke repositori.
6. GoTo langkah 2.
Mari dapatkan retak
Pasang Pelanggan
Untuk dapat menggunakan subversi, anda perlu memasang klien pada mesin anda.
Di Linux
Anda hanya perlu memasang pakej tersebut. Pada Ubuntu / Mint, ini akan dilakukan dengan:
sudo aptitude install subversion
Pada DD-WRT
Jika anda telah mengikuti "Bagaimana Untuk Memasang Perisian Tambahan Di Rumah Anda Penghala (DD-WRT)", anda dapat memasang klien svn dengan hanya mengeluarkan:
opkg update; opkg pemasangan opsyen-klien
Pada Windows
Walaupun pengguna dalam geek mendalam dapat melupakan bahawa GUI juga ada pada masa-masa, bukan semua orang. Jika anda ingin menggunakan klien tingkap untuk bersambung ke repositori SVN, setakat yang paling popular adalah "Kura-kura". Untuk menggunakannya, hanya muat turun program dan pasang dalam fesyen "seterusnya, seterusnya, selesai" biasa.
Buat "repositori"
Walaupun kami tidak akan membuat banyak terperinci tentang bagaimana untuk menyediakan pelayan subversi dalam panduan ini, alternatif Google bukanlah permulaan yang tidak baik untuk pengguna pemula. Untuk membuat repositori Google:
- Teruskan ke laman web hosting Google Code dan "buat" projek baru.
- Di halaman seterusnya, isi medan yang diperlukan dan pilih jenis "sistem kawalan versi" untuk menjadi subversi.
Nota: Anda mungkin ingin melihat apa perbezaan antara tawaran lesen Google, sebelum anda memilih satu untuk projek tersebut. - Klik "Buat projek".
Setelah projek anda dibuat, anda Harus dapat mencari arahan tentang cara mengaksesnya di tab "Sumber".
Perkara yang baik tentang kod Google, ialah ia akan membolehkan versi baca sahaja tanpa nama untuk projek anda. Jika anda tidak mahu berurusan dengan masalah membuat projek anda sendiri, anda boleh melayari secara tanpa nama repositori penulis ini.
Satu nota mengenai projek hotfortech: Projek ini dimaksudkan untuk menjadi pembungkus untuk ciri-ciri yang telah ditambah kepada DD-WRT pada How-To Geek (yang saya gunakan secara peribadi) dan beberapa tweak peribadi. Walaupun projek ini ditujukan untuk bekerja bersama dengan artikel yang diterbitkan di sini mengenai howtogeek, ia masih projek swasta saya. Iaitu sangat sesuai untuk penghala Buffalo saya (seni bina AR71xx), keinginan peribadi saya dan terdedah kepada borkage sekali-sekala.
Di Linux / DD-WRT
Buat direktori untuk berfungsi, contohnya pada DD-WRT, yang boleh:
mkdir -p / jffs / svn; cd / jffs / svn
Perintah penuh pada Linux terdiri daripada arahan SVN itu sendiri, arahan "checkout", alamat repositori dan direktori untuk checkout juga. Buat direktori kosong dan laksanakan arahan di bawah:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
Ambil perhatian bahawa dalam contoh di atas, versi baca sahaja sedang diperiksa. Jika anda memilih untuk membuat repositori anda sendiri, anda perlu menggunakan pautan httpS.
Pada Windows
Kerana kura-kura adalah pelanjutan shell, anda perlu menggunakan menu konteks file explorer Windows (klik kanan) untuk menggunakannya. Sebenarnya, jika anda cuba memanggilnya dari menu mula, anda akan mendapat:
- Buat direktori kosong.
- Klik kanan di dalamnya untuk membuka menu konteks.
- Pilih "SVN Checkout":
- Salin & tampal pautan untuk projek (jika anda mempunyai satu) ke dalam "URL" Textbox:
- Bergantung kepada saiz projek anda, ini mungkin mengambil sedikit masa, tetapi apabila "Checkout" selesai, anda sepatutnya melihat sesuatu seperti:
- Anda mungkin mula berkembang.
"Kemas kini" & "Gabung" salinan kerja anda
Sekiranya bekerja pada kod dengan rakan sekerja, atau anda sendiri mengemaskini kod dari beberapa lokasi (iaitu komputer riba, desktop atau router), anda perlu mengemas kini salinan kerja anda sebelum anda membuat perubahan terbaru.
Di Linux / DD-WRT
Perintah untuk melakukan ini pada sistem POSIX ini adalah semata-mata:
svn up
Pada Windows
- Klik kanan dalam direktori kerja dan pilih "Kemas Kini SVN":
- Jika anda menghadapi konflik, cuba ikuti arahan skrin dan gunakan penghakiman anda tentang apa yang perlu dilakukan terhadapnya.
"Komit" perubahan anda
Itulah, anda harus bebas percanggahan dan bersedia untuk mengemas kini repositori dengan perubahan anda.
Satu perkara yang perlu diperhatikan di sini ialah amalan biasa untuk menambah mesej "log" kepada komit, untuk dapat dengan mudah ingat mengapa perubahan dibuat. Sebenarnya, repositori Google menjadikan ini prasyarat wajib untuk dilakukan.
Di Linux / DD-WRT
Ini adalah satu contoh komit yang telah saya buat kepada projek hotfortech yang menaikkannya kepada versi 19:
svn commit -m "dikemas kini untuk mencerminkan pautan pak antik iklan baru"
Pada Windows
- Klik kanan dalam direktori kerja dan pilih "SVN Commit":
- Anda harus disambut dengan tingkap yang membolehkan anda melihat nota log:
- Tekan OK dan apabila diminta untuk kata laluan, berikan kata laluan yang dijana Google.
- Jika komit berjaya, anda harus melihat sesuatu seperti:
- Itulah, anda sepatutnya dapat melakukan seperti BOSS.
Ucapan akhir
Ini sepatutnya cukup untuk memulakan anda. Anda dinasihatkan untuk membaca buku rujukan SVN untuk mendapatkan pemahaman yang lebih mendalam mengenai semua kegunaan, pilihan dan kaveat SVN. Juga, kami mengingatkan anda (subversion) bahawa BUKAN satu-satunya sistem kawalan versi di luar sana dan GIT (yang dicipta oleh Linus Torvalds pengasas kernel Linux) seolah-olah semakin popular dalam beberapa tahun kebelakangan.
Jika anda memilih untuk menjalankan "running-config.sh" dari projek hotfortech pada router anda, anda akan mendapati bahawa ia akan dipasang untuk anda: Pak anti-iklan, skrip Geek-init Opkg, serta perkara seperti GNU penuh "ls", "kurang", "BASH" dan banyak lagi.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Lebih banyak ciri yang belum selesai dan akan ditambah pada masa akan datang.
Pentadbir sistem akan menghilangkan coding mereka.