Kontrol versi untuk pengembang independen?

60

Apakah menurut Anda layak menggunakan kontrol versi jika Anda adalah pengembang independen, dan jika ya, mengapa? Apakah Anda menyimpan repositori di komputer Anda sendiri, atau di tempat lain, di mana repositori dapat berfungsi sebagai cadangan?

kebencian
sumber
54
Saya ingin melihat seorang apoteker bertanya: "Haruskah saya menyimpan obat-obatan dengan cara yang terorganisir atau hanya melemparkan semuanya ke dalam laci? Apakah sepadan dengan usaha?"
Erik
23
Bayangkan saja bekerja sangat keras selama seminggu berturut-turut menciptakan perangkat lunak yang luar biasa ini. Lalu hapus. Bagaimana perasaanmu? Ini bukan hanya penyimpanan. Ketika ada sesuatu yang rusak yang bekerja minggu lalu, Anda dapat melihat dan melihat apa yang berubah dan biasanya melihat apa yang Anda rusak. Saya masih melihat pengembang 'profesional' dengan folder backup001 dan backup_backup001 dicampur dengan sumbernya. Bentuk kebiasaan baik saat Anda masih muda.
Erik
@Erik Yuck, folder cadangan terdengar buruk. Saya menggunakan kontrol sumber untuk proyek-proyek saya, meskipun saya tidak terlalu pandai melakukan komitmen.
vedosity

Jawaban:

61

Jika Anda menggunakan kontrol sumber terdesentralisasi (Mercurial atau Git atau Bazaar atau apa pun), Anda mendapatkan keuntungan dibandingkan SVN / CVS yang membuatnya mudah, berguna dan kuat untuk digunakan jika Anda seorang indy:

  1. Anda komit secara lokal : dir proyek Anda adalah repo Anda dengan riwayat FULL. Jadi Anda tidak harus memiliki server, Anda komit langsung di repo Anda, dan Anda dapat memiliki beberapa repo di komputer yang sama. Menggunakan laptop yang Anda buka terkadang untuk terus mengerjakan barang-barang Anda? Bagus! Anda tidak perlu mengatur server dan jika Anda membutuhkannya nanti, itu mudah dan Anda hanya perlu "mendorong" dan "menarik" perubahan di antara repositori.
  2. Ini dibuat untuk memudahkan eksperimen : sering kali Anda perlu memiliki ide tentang fitur tanpa kode polusi. Dengan SVN dan CVS Anda sudah dapat menggunakan sistem percabangan dan parit cabang jika fitur tidak sebaik yang Anda inginkan. Tetapi jika Anda ingin menggabungkan fitur dengan versi trunk, Anda akan memiliki banyak kesulitan untuk memperbaiki kejutan. Git, Mercurial dan Bazaar (setidaknya) membuat penggabungan dan cabang sangat mudah. Anda bahkan dapat menggandakan repo, mengerjakannya beberapa saat, masih komit dan membunuhnya atau mendorong perubahan Anda di repo utama jika Anda mau.
  3. Fleksibilitas organisasi : seperti yang ditunjukkan sebelumnya, karena Anda memiliki repo yang Anda kelola sesuai kebutuhan, mudah untuk memulai sendiri dan memungkinkan orang lain bekerja dengan Anda dengan mengubah organisasi Anda. Tidak ada organisasi yang dipaksakan jadi Anda hanya perlu mengatur dan menjalankannya. Saya sering hanya mendorong / menarik perubahan di antara komputer saya sendiri (laptop / desktop / server) dan saya masih sendirian di devs saya. Saya menggunakan Mercurial dan itu membantu saya menduplikasi pekerjaan saya tetapi juga bekerja pada fitur yang saya pikirkan di luar pada laptop saya, kemudian terus bekerja pada fitur-fitur lain pada desktop saya, kemudian mendorong perubahan laptop saya di desktop atau server saya dan menggabungkan seluruh desktop + laptop dan meletakkannya (sebagai cadangan dan repo kerja tim masa depan) di server saya.
  4. Ini membantu mengatur cadangan : jika Anda menyiapkan repo pusat (di GitHub jika itu publik, atau dalam repo pribadi di BitBucket) Anda dapat dengan mudah menulis skrip yang akan dieksekusi setiap kali komputer di-boot, dan kemudian meneruskan skrip tersebut di ke teman-teman Anda sehingga membuat cadangan otomatis dari pekerjaan Anda secara teratur. Itu yang saya lakukan jadi sekarang saya yakin tidak akan mudah kehilangan pekerjaan saya.

Bahkan, saat ini, Anda tidak punya alasan untuk tidak menggunakan alat sumber kontrol untuk proyek apa pun. Karena mereka lebih kuat dan fleksibel daripada sebelumnya dan menyesuaikan dengan kebutuhan Anda.

Klaim
sumber
6
Selalu ada GitHub .
HedgeMage
8
Atau bitbucket.org jika Anda menggunakan Mercurial.
Terence Ponce
7
Mercurial dengan repo sistem file lokal di dropbox berfungsi sangat baik untuk pengembang tunggal.
Pieter Breed
1
@Guillaume: Seorang pengembang tunggal dapat menggunakan aspek "terdistribusi" dari DVCS. Saya lakukan. Sebagai contoh, saya dapat bekerja di komputer A, mendorong pekerjaan saya di kunci usb saya, dan kemudian tarik dari kunci usb ini di komputer B.
barjak
1
@Guillaume "Terdistribusi" adalah aspek teknis, bukan aspek organisasi. Anda dapat menggunakan sistem sumber constrol terpusat dengan organisasi dengan integrator hanya diizinkan untuk memvalidasi kode yang sudah dilakukan. Itu mungkin tetapi sulit untuk diatur karena sifat alat yang terpusat. Tapi itu masih masalah ortogonal.
Klaim
34

kontrol kode sumber sama sekali tidak berguna untuk pengembang independen, karena seperti yang kita semua tahu:

  • pengembang independen tidak pernah melakukan kesalahan
  • pengembang independen tidak pernah melakukan revisi yang tidak berhasil
  • pengembang independen tidak pernah memiliki lebih dari satu versi sehingga mereka tidak menggunakan cabang
  • pengembang independen tidak pernah peduli dengan apa yang mereka ubah kemarin atau minggu lalu
  • pengembang independen tidak pernah membutuhkan cadangan

Panggil saya "pengembang tergantung": Repositori Mercurial mudah dikloning antara desktop saya, laptop, drive cadangan USB, dan bitbucket.org. Saya semakin tergantung, dan saya suka itu!

Steven A. Lowe
sumber
6
Apakah jawaban ini sarkastik?
4
@kurtnelle: sangat!
Steven A. Lowe
1
Kewlio, hanya memeriksa.
21

Kenapa tidak?

Saya seorang pengembang solo dan saya menggunakan BitBucket dan Mercurial untuk proyek pribadi saya. Memiliki kemampuan untuk mengembalikan dan memalsukan kode Anda terlalu bagus untuk dilewatkan.

Terence Ponce
sumber
8
+1 untuk BitBucket - mereka menawarkan repositori pribadi tanpa batas gratis.
Jon Sagara
2
Repositori pribadi gratis adalah alasan mengapa saya menggunakan BitBucket di atas GitHub.
Terence Ponce
4
repo pribadi gratis ?? Anda mungkin telah mengubah saya dari git ke hg.
Gauthier
@Gauthier, ya, BitBucket memiliki repo pribadi gratis. Saya tidak yakin apakah itu tidak terbatas.
Terence Ponce
1
Anda masih dapat menggunakan git dengan bitbucket. Bahkan impor langsung dari github termasuk kunci ssh. Baru saja pindah tetapi masih menggunakan git (Saya lebih suka itu!)
Daniel Casserly
1

Saya menemukan nilai di dalamnya, secara pribadi. Semua proyek saya diperiksa ke dalam repositori git (yang semuanya saya simpan di beberapa mesin jika terjadi kegagalan perangkat keras). Fitur yang paling berguna adalah bercabang (sehingga saya dapat menjalankan percobaan yang mengacaukan setengah dari basis kode saya, dan tidak khawatir meledakkan sesuatu secara permanen) dan kembali (yang pada dasarnya hanya membatalkan steroid; kalau-kalau saya membuat beberapa kesalahan yang di luar rentang batalkan biasa).

Inaimathi
sumber
1

Iya. Ini sangat sangat berguna. Teman saya Matt Gallagher memposting artikel yang sangat bagus tentang topik ini hanya beberapa hari yang lalu ke blog pengembangan iOS / MacOS "Cocoa With Love" -nya.

Artikel ini berpusat pada Mac & Git tetapi mencakup dasarnya.

Anda juga mungkin tertarik dengan Pertanyaan StackExchange berikut (dan jawaban mereka).

orj
sumber
1

Bernilai?? Harus! Jika Anda tidak menggunakan Kontrol Sumber maka Anda tidak mengontrol sumber Anda, dan itu buruk. Anda tidak dapat membedakan Anda tidak dapat mengembalikan, Anda tidak dapat melacak perubahan - Anda akan menghabiskan berjam-jam mencoba untuk menemukan bug dummy yang baru saja Anda masukkan. Lebih baik memilikinya di beberapa server yang dicadangkan, tetapi Anda juga dapat menggunakan komputer dan menggunakan metode cadangan apa pun yang menurut Anda sesuai.

Assimiz
sumber
2
Saya benar-benar menggunakan kontrol sumber, tetapi saya juga cenderung melakukan hal-hal seperti rekayasa berlebihan dan mengadopsi hal-hal yang berlebihan. Saya terkenal karena ini di tempat kerja. Kemudian lagi, saya tidak berpikir ada programmer di mana saya bekerja termasuk saya telah bekerja di tempat lain sebagai programmer, dan kebanyakan dari kita masih di sekolah menengah.
vedosity
1

Benar-benar menggunakan kontrol sumber. Kemudian atur server build dan otomatisasi proses build dan testing Anda. Pemicu build dari sumber Anda melakukan repo pusat Anda. Saya telah bekerja sendiri selama tiga tahun dengan cara ini dan itu luar biasa.

Dave Neeley
sumber
0

Iya.

Bahkan pengembang tunggal terkadang perlu melihat status kode mereka dari beberapa revisi sebelumnya. Dan itu selalu ide yang baik untuk membuat cadangan semua hal penting, dan itu berlaku untuk semua orang.

Apa namanya
sumber