Salah satu alasan mengapa programmer lebih suka SVN daripada CVS adalah karena mantan memungkinkan atom melakukan? Apa artinya ini ?
Salah satu alasan mengapa programmer lebih suka SVN daripada CVS adalah karena mantan memungkinkan atom melakukan? Apa artinya ini ?
Jawaban:
Ini berarti bahwa ketika Anda melakukan komit ke sistem kontrol versi baik semua yang Anda ingin komit masuk, ATAU tidak ada yang berhasil.
Di CVS, ketika Anda mencoba komit, komit mungkin berhasil di beberapa file, lalu gagal di beberapa file lain (karena mereka telah berubah). Ini meninggalkan repositori dalam keadaan yang tidak menguntungkan karena setengah dari komit Anda tidak ada di sana, dan kemungkinan Anda telah meninggalkan beberapa hal dalam keadaan di mana mereka tidak akan dikompilasi atau lebih buruk. Sekarang Anda harus cepat dan mengintegrasikan perubahan apa pun sehingga Anda dapat melakukan file lain sebelum orang lain perlu memperbarui dan mendapatkan set perubahan yang rusak.
Dalam SVN ini tidak akan terjadi - SVN akan melakukan semua yang telah Anda ubah, atau itu akan gagal keseluruhan perubahan. Dengan demikian, Anda tidak akan pernah meninggalkan repositori dalam keadaan rusak karena melakukan masalah.
Ini dijelaskan misalnya dalam Bye-bye CVS. Saya telah ditumbangkan artikel yang ditulis oleh Andy Lester :
Jika saya mencoba melakukan dalam Subversion, tetapi salah satu file memiliki konflik, atau kedaluwarsa, tidak ada file yang melakukan. Di CVS, Anda memiliki set file setengah komitmen yang harus Anda perbaiki SEKARANG.
Fakta bahwa CVS memaksa pemrogram untuk memperbaiki penggabungan dengan segera sama kontraproduktifnya. Dibandingkan dengan itu, opsi untuk menunda / membatalkan / menggabungkan perubahan adalah keuntungan besar.
Manfaat lain dari SVN dibandingkan CVS yang dijelaskan dalam artikel di atas adalah:
Versi lokal dari semua yang Anda lakukan
Jika Anda ingin cvs diff, Anda harus dapat terhubung ke repositori Anda. Tidak ada koneksi internet, tidak ada perbedaan. Subversion menyimpan salinan asli apa yang sedang Anda kerjakan, jadi svn diff akan berfungsi dengan baik. Ingin memulai dari awal? svn revert karya tidak terhubung juga.Nama simbol revisi
HEAD adalah nama ujung bagasi di CVS, tapi saya selalu ingin bisa mengatakan "-r-1" seperti saya bisa kembali ketika di hari PVCS. Dengan CVS, saya harus melakukan cvs log pada apa yang saya edit, dan kemudian kurangi satu. Itu tidak seru. Dengan Subversion, saya dapat mengatakan svn diff -r PREV.Pelaporan status nyata
Di CVS, satu-satunya cara Anda dapat melihat apakah ada sesuatu di server yang lebih baru adalah dengan memperbarui cvs dan berharap bahwa apa pun yang turun tidak menyebabkan konflik. Dengan perintah status svn, saya mendapatkan status nyata, jadi saya bisa melihat apakah ada konflik sebelum saya melakukan pembaruan.Penanganan konflik penggabungan yang membantu
Di CVS, jika ada konflik, Anda mendapatkan penanda konflik di file Anda. Di Subversion, Anda mendapatkan penanda konflik, PLUS salinan file asli Anda, sebelum konflik, PLUS versi yang turun dari server, PLUS versi yang awalnya Anda edit. Kemudian, Anda harus secara eksplisit svn menyelesaikan filename.txt untuk memberi tahu Subversion bahwa Anda telah memperbaiki masalahnya. Tidak ada lagi komitmen yang tidak disengaja untuk kembali ke CVS dengan penanda konflik masih ada.
Ini berarti bahwa semua perubahan pada semua file dilakukan dalam satu transaksi, sehingga semua berhasil atau tidak ada.
Ini berarti bahwa Anda lebih kecil kemungkinannya untuk mendapatkan suntingan sebagian di dalam repositori yang menyebabkan build gagal. Anda masih bisa membuat orang lupa untuk memeriksa semua file yang relevan, tetapi itu masalah proses daripada masalah dengan sistem versi.