Saya seorang pengembang pemula dan saya telah bertanya-tanya sejak awal, bagaimana cara profesional menggunakan alat seperti GIT dan Subversion (saya tidak memiliki pemahaman yang sangat baik tentang alat ini), untuk memenuhi kebutuhan proyek mereka. Jika mereka menggunakannya, bagaimana saya mengatur sesuatu seperti itu?
Aplikasi saya tidak begitu besar dan saya belum bekerja dalam tim, apakah mereka akan sangat membantu saya?
Ada pertanyaan di situs ini tentang cara menggunakan alat, tetapi saya membutuhkan dukungan pemula.
version-control
git
svn
Wolfi
sumber
sumber
Jawaban:
Kontrol sumber ada di mana-mana - orang mungkin bahkan mengatakan Anda tidak dapat menyebut diri Anda seorang pengembang profesional jika Anda tidak menggunakannya. Bahkan ketika berkembang sendiri, kontrol sumber masih menawarkan beberapa manfaat. Pada akhirnya ini menyediakan baik sejarah dan jalur membatalkan yang luas. Ini juga membebaskan Anda untuk bereksperimen lebih banyak, aman dalam pengetahuan bahwa jika Anda tidak menyukai versi baru, Anda selalu dapat kembali ke apa yang Anda miliki sebelumnya.
Yang mengatakan, alur kerja, bahkan dalam sistem kontrol sumber seperti Subversion atau Git, sangat bervariasi dari tim ke tim. Tempat terbaik untuk memulai mungkin memilih sistem kontrol sumber dan membiasakan diri dengan alur kerja standarnya (dengan mengingat bahwa Anda harus mengubah alur kerja sepanjang kehidupan profesional Anda).
Untuk memulai, saya akan merekomendasikan Git. Saya seorang penggemar Git, tetapi lebih khusus memilih Git akan memungkinkan Anda untuk mulai dengan bekerja tanpa server dan hanya menyiapkan server ketika masuk akal bagi Anda. Subversi, di sisi lain, membutuhkan server dan pengaturannya, meskipun tidak terlalu sulit, menakutkan ketika Anda tidak terbiasa dengan hal semacam itu.
Berikut ini adalah ikhtisar yang baik dari beberapa aturan praktis yang baik untuk kontrol sumber secara umum: http://scottonwriting.net/sowblog/archive/2008/11/13/163320.aspx
Saat bekerja sendiri, Anda tidak perlu banyak alur kerja. Berkomitmen awal, komit sering. Jika Anda mulai meluncurkan versi, beri tag pada rilis Anda. Buat cabang untuk eksperimen atau pekerjaan panjang yang berbeda (Git membuatnya lebih murah dan lebih sederhana daripada Subversion).
sumber
Sistem kontrol sumber (SVN, Git dll) pada tingkat yang sangat sederhana memungkinkan Anda untuk menyimpan riwayat perubahan file. Ini memungkinkan Anda untuk melihat bagaimana kode Anda telah berubah dari waktu ke waktu dan mengembalikan perubahan yang mungkin tidak Anda inginkan (mis. Perubahan tidak berfungsi seperti yang diharapkan, Anda dapat mengembalikan kode ke keadaan yang sebelumnya diketahui). Ini adalah sesuatu yang bahkan dikembangkan sendiri akan menjadi sangat berharga bagi Anda setelah Anda mulai menggunakannya.
Segera setelah Anda bekerja dengan orang lain dalam sebuah tim, manfaatnya bertambah lebih banyak karena banyak orang dapat mengubah file yang sama dan jika perubahan tidak bertentangan (mis. 2 orang mengubah bagian file yang berbeda) perubahan akan digabungkan secara otomatis. Jika ada konflik maka Anda akan dapat melihat perubahan Anda di sebelah kolega Anda dan berdiskusi dengan mereka bagaimana menggabungkan perubahan tersebut.
Anda juga dapat membuat snapshot basis kode (biasanya disebut tag) ketika merilis versi kode sehingga Anda dapat dengan mudah men-debug masalah meskipun sumber utama telah pindah dengan fitur-fitur baru yang mungkin belum dirilis.
Berikut adalah beberapa sumber yang bermanfaat:
Bangun dan jalankan Subversion dan Tortoise SVN dengan Visual Studio dan .NET
Kontrol Versi dengan Subversi
sumber
Tutorial untuk Pemula
Ada banyak tutorial (video dan teks) yang dapat membantu Anda memulai dari level yang sangat dasar. Git tampaknya memiliki pendekatan hebat untuk memperkenalkan topik dengan cara yang lembut untuk pemula yang memberi tahu Anda alasan pertama dan menggunakan pengulangan, definisi, dan grafik untuk membantu Anda mengingat nama dan fungsi perintah utama.
SVN
SVN dimaksudkan agar CVS dilakukan dengan lebih baik. CVS (concurrent Version System) bekerja pada hal-hal file pada suatu waktu, SVN biasanya bekerja pada hal-hal direktori atau pohon direktori pada suatu waktu. SVN (dan CVS atau sistem lain) mungkin penting jika Anda menggunakannya di tempat kerja, tetapi pendapat saya adalah bahwa kami secara signifikan meningkatkan pemahaman kami tentang apa yang diperlukan untuk melakukan kontrol sumber setiap beberapa tahun, jadi sama seperti Anda memilih model yang lebih baru komputer, Anda harus memilih alat kontrol sumber model akhir. Ini adalah investasi besar untuk mengubah sistem, dan sejarah kode bisa hilang, meskipun untuk banyak sistem ada konverter yang memungkinkan Anda memigrasi kode Anda serta riwayat dan artefak lain yang dibuat oleh sistem yang sudah pensiun.
Kontrol Sumber Profesional Memenuhi Kebutuhan Profesional
Pertanyaan Anda "Bagaimana cara profesional menggunakan alat seperti GIT dan Subversion untuk memenuhi kebutuhan proyek mereka?" berkaitan erat dengan pertanyaan "Bagaimana tim bekerja sama tanpa saling menghalangi sementara masih bekerja secepat mungkin?"
Kode ini sering berubah dengan beberapa pengembang membuat kode yang akan digunakan pengembang lain, dan dengan berbagai pemangku kepentingan membutuhkan tingkat stabilitas dan inovasi yang berbeda. Sistem kontrol sumber membantu dengan menyimpan kode untuk digunakan oleh tim, menjaga setiap perubahan sesuai konteks dengan versi yang berubah seiring waktu dan seringkali juga dengan cabang yang dikendalikan salinan kode yang berfungsi untuk mengisolasi kelompok perubahan dari kelompok perubahan lain.
Menyatukan semuanya kembali, menggabungkan pekerjaan banyak anggota tim adalah tugas yang dalam SVN dan sistem yang lebih lama terpusat dan sulit. Untuk tim yang menggunakan Git, penggabungan menjadi lebih sederhana dan lebih mudah diakses oleh pengaruh seluruh tim alih-alih beberapa pakar. Dalam SVN, percabangan bisa menjadi masalah pribadi, tetapi penggabungan sering memiliki dampak yang menyakitkan bagi tim dan pergerakan kode kembali ke jalur utama bisa menyakitkan dari perspektif mendapatkan izin, menghindari kerusakan, dan tingkat upaya yang diperlukan tugas .
Dari repositori kontrol sumber yang mapan, profesional dapat memenuhi kebutuhan lain seperti mendiagnosis masalah hingga akar permasalahannya. Jika ada versi kode yang digunakan untuk bekerja, dan masalah yang baru ditemukan yang terjadi di versi saat ini, dimungkinkan untuk melangkah maju dan mundur melintasi sejarah untuk menunjukkan titik ketika masalah terjadi. Di SVN, kemampuan ini belum matang, tetapi di Git pencarian untuk versi gagal / pertama yang gagal didukung oleh perintah yang disebut git bisect. Masalahnya akan disebabkan oleh salah satu perubahan sumber antara dua versi yang berpotensi diagnosis yang jauh lebih mudah daripada pencarian seluruh basis kode.
Maaf mengoceh, semoga ini membantu Anda dalam perjalanan menuju menggunakan kontrol sumber.
sumber
Tim saya menggunakan sistem kontrol versi tim yang dikembangkan sendiri. (Sayangnya, Git tampaknya belum berfungsi pada file sumber "i" asli IBM). Tetapi secara pribadi, setelah saya menarik sumber dari sistem itu, saya menggunakan Git selama pengembangan saya, sampai proyek selesai dan saya memeriksanya kembali ke tim VCS.
Seperti yang mereka katakan dalam pemilihan ... lakukan lebih awal, lakukan lebih sering. Saat saya mengerjakan fitur baru, saya melakukan. Saya melakukan antara kompilasi, dan pada setiap upaya untuk memperbaiki kesalahan kompiler, setiap kali saya membuat perubahan selama pengujian dan debugging. Ini memungkinkan membuatnya lebih mudah untuk mencoba beberapa variasi pada suatu tema dan dengan mudah mundur dari itu jika diperlukan, terutama ketika perubahan dikoordinasikan di beberapa file.
Git telah meningkatkan cara saya mendekati pembangunan.
sumber