Apa nilai menggunakan kontrol versi?


19

Saya baru mengenal kontrol versi (saat ini menggunakan SVN), tetapi saya tidak mengerti bagaimana ini membantu pengembang. Apa yang dilakukan kontrol versi yang membuatnya berguna dalam lingkungan pengembangan?


4
Baca saja Sumber Kontrol HOWTO-seri Eric Sink yang sangat baik: ericsink.com/scm/source_control.html . Selebihnya, tidak banyak yang bisa dijawab di sini atau didiskusikan.
Deckard

4
Kontrol sumber adalah salah satu hal yang tampaknya tidak berguna sampai Anda membutuhkannya. Kemudian Anda menyadari bahwa Anda tidak dapat melakukannya tanpanya. Sayangnya, saat itu sudah terlambat. Semacam asuransi banjir, kecuali saya menemukan kontrol sumber memiliki utilitas jauh lebih besar.
Rein Henrichs

2
@rahmanisback Anda menginginkannya tepat setelah Anda melakukan File | Proyek Baru ... Anda memerlukannya segera setelah Anda memiliki> 1 pengembang di proyek (jalur standar saya adalah> 0 pengembang - dan saya yakin ini lebih benar sekarang daripada sebelumnya)
Murph

8
Bekerja tanpa kontrol versi adalah seperti menghapus perintah "Undo" dari pengolah kata yang Anda gunakan untuk mengetik esai Anda, atau menghapus semua penghapus dan cairan koreksi dari meja Anda.
rwong

2
@rahmanisback Segera setelah Anda secara tidak sengaja menghapus file atau kehilangan data, salah satunya. @Rwong analogi yang bagus.
Rein Henrichs

Jawaban:


21

VisualSVN dan TortoiseSVN hanyalah klien UI untuk server SVN. Server SVN adalah sistem kontrol sumber / versi. Sistem kontrol versi adalah aset utama untuk setiap pengembangan nyata karena ia menyimpan versi Anda kode sumber Anda. Saat menggunakan sistem kontrol versi, Anda hanya menyimpan salinan kode sumber lokal. Salinan utama disimpan pada sistem kontrol versi dan Anda melakukan perubahan pada sistem.

SVN memungkinkan:

  • berbagi kode sumber yang mudah di antara seluruh tim melalui repositori pusat
  • membuat cadangan kode sumber dan file sumber daya lainnya yang terkait dengan proyek
  • menyimpan riwayat bagaimana kode sumber diubah
  • Anda dapat kembali ke versi apa pun yang disimpan dalam riwayat
  • Anda dapat membandingkan perubahan antar versi
  • Anda dapat melihat siapa yang membuat perubahan
  • Anda dapat mengunci file untuk akses eksklusif sehingga tidak ada orang lain yang dapat bekerja pada file tersebut
  • Anda dapat melihat siapa yang mengerjakan file kode sumber apa pun atau siapa yang mengunci file tersebut
  • Anda bisa menggabungkan perubahan jika bekerja paralel pada file yang sama
  • Anda dapat melihat komentar yang terkait dengan perubahan yang dilakukan
  • dengan alat tambahan Anda dapat mengaitkan perubahan yang dilakukan dengan tugas
  • Anda dapat memberi label / menandai versi untuk memudahkan mencari, misalnya, rilis produksi
  • Anda dapat bercabang kode sumber - buat versi paralel di mana satu cabang dapat dianggap sebagai cabang utama dan lainnya dapat digunakan untuk menguji beberapa fitur khusus atau untuk melanjutkan pengembangan versi produk baru sementara perbaikan ke versi produksi saat ini diperbaiki di utama cabang
  • Anda dapat menggabungkan perubahan antar cabang
  • dll.

VisualSVN adalah ekstensi ke Visual Studio yang memungkinkan Anda menggunakan repositori SVN langsung dari Visual Studio UI. TortoiseSVN adalah ekstensi ke Windows Explorer yang memungkinkan Anda menggunakan repositori SVN secara langsung saat Anda menelusuri folder dan file.


+1. Haaa .. setelah menggunakan VCS selama lebih dari satu dekade, agak sulit menjawab 'kenapa'. Maksud saya, ini sudah sangat jelas - tetapi sangat sulit untuk mengartikulasikan benar-benar 'mengapa' cara Anda melakukannya! Jawaban yang bagus
Dipan Mehta

Saya percaya AnkhSVN juga menjadikan pekerjaan mematikan mengintegrasikan SVN ke dalam Visual Studio.
Saul Delgado

6

Kontrol versi menawarkan sejumlah hal:

  • Arsipkan perangkat lunak Anda sehingga Anda dapat melihat statusnya pada titik waktu sebelumnya. Sangat berguna untuk menemukan di mana bug diperkenalkan.
  • Izinkan beberapa pengembang di proyek yang sama untuk berbagi dan mengoordinasikan pekerjaan mereka sambil membantu menjaga agar tidak saling menimpa pekerjaan.
  • Mendukung kelangsungan individu dan bisnis terutama melalui server pusat yang dilindungi dan dicadangkan.

Ini adalah minimum untuk setiap pengembangan perangkat lunak selain mengutak-atik untuk melihat apa yang terjadi.

Saya selalu memperingatkan siapa pun yang bekerja dengan sistem kontrol versi untuk pertama kalinya bahwa menghindarinya hanya mengundang masalah. Mereka AKAN mengalami masalah bahwa ketika mereka melihat ke belakang mereka AKAN menyadari bahwa itu tidak akan terjadi jika mereka menggunakan sistem.


0

Pengembang paling produktif adalah sendirian. Pengembang soliter tidak perlu khawatir berkoordinasi dengan orang lain. Tapi begitu proyek berjalan jamak, ada overhead. Dan untuk setiap pengembang yang ditambahkan ke tim, biaya overhead semakin buruk. Merupakan tugas VCS untuk membantu mengelola overhead ini dan meminimalkan efeknya.

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html


8
Bahkan seorang pengembang tunggal membutuhkan kontrol versi. VCS tidak hanya "mengelola overhead" seperti kutipan ini menyiratkan.
alroc

5
Bahkan satu-satunya pengembang dapat menyadari bahwa mereka melakukan kesalahan minggu lalu dan ingin mendapatkan kode lama kembali. Bahkan satu-satunya pengembang mungkin ingin mencoba serangkaian besar, kompleks reaktor tanpa risiko basis kode asli.
Gort the Robot

Saya pikir aspek "cadangan" dan "mengembalikan" kontrol versi sudah jelas bagi kebanyakan orang, tetapi tidak sampai Anda menyadari bagaimana kontrol versi membantu mengurangi overhead kolaborasi sehingga seseorang benar-benar memahami nilainya.
Jace Browning
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.