Dorong komitmen yang sering. Rekan tim yang baru mengenal kontrol versi mungkin merasa mereka perlu menyimpan kode dari repositori sampai "berfungsi dengan benar". Ajari semua orang untuk berkomitmen sejak dini dan sering kali untuk menemukan masalah secepat mungkin. Alih-alih menahan kode 'sampai berfungsi, usulkan agar rekan tim Anda membuat cabang untuk fitur yang mungkin merusak trunk. Itu mengarah ke ...
Buat praktik percabangan dan penandaan. Selain cabang untuk fitur, dorong rekan tim Anda untuk menggunakan cabang untuk perbaikan bug besar. Tandai perbaikan bug utama di awal dan akhir pekerjaan. Pertahankan tag (dan mungkin bercabang) untuk rilis produksi / qa.
Tetapkan kebijakan untuk bagasi dan patuhi itu. Salah satu contohnya mungkin, "trunk harus selalu dibangun tanpa kesalahan." atau "trunk harus selalu lulus semua pengujian unit". Pekerjaan apa pun yang belum memenuhi standar batang harus dilakukan di cabang.
Jangan melakukan perubahan format dengan perubahan kode
Jika Anda ingin merestrukturisasi whitespace ( Control+ K+ D) file raksasa , bagus. Lakukan perubahan format secara terpisah dari perubahan logis yang sebenarnya. Hal yang sama berlaku jika Anda ingin memindahkan fungsi dalam file. Lakukan pemindahan secara terpisah dari pengeditan sebenarnya.
sumber
Salah satu konsep utama yang selalu saya pegang adalah melakukan perubahan kode terkait bersama-sama . Konsekuensinya adalah tidak melakukan perubahan kode yang tidak terkait dalam komit yang sama . Ini berarti jangan perbaiki 2 bug dalam satu komit (kecuali jika perbaikannya sama), dan jangan komit setengah perbaikan bug di masing-masing 2 komit. Juga, jika saya perlu menambahkan beberapa peningkatan baru atau sesuatu ke bagian sistem yang tidak terkait yang kemudian saya perlukan untuk beberapa pekerjaan lain, saya melakukan peningkatan secara terpisah (dan pertama). Idenya adalah bahwa setiap perubahan yang mungkin ingin dimiliki oleh siapa pun (atau memutar kembali sendiri) harus menjadi commit terpisah. Ini akan menghemat banyak sakit kepala ketika tiba waktunya untuk melakukan penggabungan atau mengembalikan fitur yang rusak.
sumber
Banyak yang telah disebutkan, dan ini beberapa lagi:
Jika Anda memiliki file yang tidak Anda inginkan dalam kontrol sumber (mis. Konfigurasi, file yang dikompilasi, dll.), Tambahkan file tersebut ke daftar abaikan . Dengan cara ini Anda melihat file apa pun yang Anda lupa tambahkan dengan selalu mengharapkan daftar file kosong yang ditampilkan sebagai tidak dikenal oleh SVN.
Tambahkan peristiwa pasca komit yang akan mengirim email ke milis pengembang Anda (atau yang spesifik untuk target ini) terkait dengan perubahan yang dilakukan dan idealnya tambalan untuknya.
Integrasikan dengan pelacak bug Anda sehingga referensi untuk komit muncul di bug / permintaan fitur dengan tautan ke diff. Pelacak bug seperti MantisBT mendukung ini.
Pertimbangkan untuk mengintegrasikan dengan integrasi berkelanjutan (mis. CruiseControl.NET ), NAnt untuk Build, dan NUnit / VS untuk pengujian unit. Dengan cara ini setelah pengguna check-in kode atau pada interval yang dijadwalkan, kode dikompilasi, pengujian unit dijalankan, dan pengembang mendapat umpan balik dari proses tersebut. Ini juga akan mengingatkan anggota tim lainnya jika repositori rusak (yaitu tidak dibangun).
sumber
Nah, dasar-dasarnya:
sumber
Jawaban yang orang berikan sangat bagus. Sebagian besar dirangkum dalam dokumen pengguna svn untuk praktik terbaik SVN .
Mengulang:
sumber
Saya ingin meringkas praktik terbaik yang saya ikuti:
Harus ada struktur repositori . Secara pribadi saya menggunakan struktur repositori berikut:
PA
(pra-alfa),A
(alfa),B
(beta),AR
(rilis alfa),BR
(rilis beta),RC
(kandidat rilis),ST
(stabil).Anda dapat menemukan garis besar praktik terbaik subversi saya dalam bentuk diagram yang menggambarkan prinsip-prinsip utama pendekatan manajemen konfigurasi perangkat lunak yang saya gunakan.
sumber
Satu hal yang menurut saya sangat berguna adalah svn: properti eksternal yang berarti Anda dapat mereferensikan direktori dari repositori lain ke dalam milik Anda. Ini memberikan cara yang sangat bagus untuk mengatur kode dan data Anda. Beberapa contohnya adalah:
sumber
Gunakan integrasi dengan perangkat lunak pelacakan kutu Anda. Jika Anda menggunakan Bugzilla , Anda dapat mengaturnya sehingga jika komentar Anda dimulai dengan "Bug XXXX", komentar SVN Anda secara otomatis ditambahkan sebagai komentar untuk bug yang diberikan, termasuk tautan ke antarmuka web SVN Anda ke revisi tersebut.
sumber
Pelajari tentang alat dan konvensi pencabangan dan penggabungan SVN.
Cara terbaik untuk bekerja dengan anggota tim lainnya adalah dengan memecah pekerjaan menjadi fitur / perbaikan pengembangan lengkap, kemudian mengerjakan perubahan individu, masing-masing di cabang. Kemudian gabungkan perubahan kembali ke cabang / batang jalur utama saat selesai / siap / disetujui untuk digabungkan.
Dengan cara ini individu dapat bekerja menuju tujuan bersama (baik di cabang yang sama atau cabang yang terpisah) tanpa bertabrakan dengan perubahan lain.
Jarak tempuh Anda mungkin berbeda, dan ini mungkin berlebihan hanya untuk dua orang atau lebih.
sumber
Ini membuatnya lebih mudah jika Anda menggunakan alat bagus yang terintegrasi dengan baik dengan SVN. Ini memudahkan untuk melihat apa yang telah diubah dan kemudian mengkomit semua atau sebagian dari perubahan Anda dan untuk sering memperbarui copy pekerjaan Anda ke versi terbaru di SVN.
Saya merekomendasikan Tortoise SVN (Jika Anda menggunakan Windows) dan Visual SVN (jika Anda menggunakan VS).
Juga lihat apakah Anda dapat mengaturnya sehingga Anda mendapatkan email atau pemberitahuan serupa setiap kali ada perubahan (biasanya juga termasuk pesan komit dan daftar file yang diubah). Layanan seperti CVSDude menawarkan ini. Saya merasa terbantu untuk mengetahui bahwa pembaruan telah dibuat dan kemudian memiliki gagasan tentang apa yang terkandung dalam pembaruan itu sebelum memperbarui copy pekerjaan saya.
sumber
Selain kebijakan percabangan et al. (di mana satu ukuran tidak cocok untuk semua), Anda harus memiliki komitmen yang baik:
sumber
Aturan emas untuk kendali sumber: Check In Early, Check In Sering
Untuk tip bagaimana mengatur repositori Anda:
sumber
Konsultasikan dengan tim Anda tentang perubahan mereka, atau setidaknya lihat perbedaannya dengan sangat hati-hati, sebelum memperbaiki konflik penggabungan. Minta mereka untuk meninjau sendiri kode yang digabungkan untuk memastikan penambahan mereka tidak hilang dalam penggabungan.
sumber
Satu hal yang saya lihat yang mengurangi komitmen yang rusak adalah memiliki skrip pra-komitmen yang baik. Misalnya, Anda dapat menjalankan pengujian unit apa pun sebelum perubahan dilakukan. Ini akan menyebabkan komitmen menjadi sedikit lambat, tetapi Anda menghemat waktu dengan menghindari menginjak kaki seseorang dan harus meminta maaf. Tentu saja ini menjadi jauh lebih sulit untuk dikelola ketika Anda memiliki tim pengembangan yang besar dan sangat sering berkomitmen.
sumber
Salah satu contoh integrasi dengan pelacak bug dan penegakan kebijakan komit dapat berupa skrip hook pra / pasca-komit Trac svn, yang dapat menolak komit jika pesan komit tidak merujuk tiket apa pun di pelacak bug dan menambahkan komentar ke yang ada. tiket berdasarkan isi pesan (mis. pesan komit mungkin berisi sesuatu seperti "Perbaikan # 1, # 2 dan # 8", di mana # 1, # 2, # 8 adalah nomor tiket).
sumber
Praktik terbaik untuk menggunakan SVN :
Ketika Anda pertama kali datang ke kantor dan membuka proyek Eclipse Anda , langkah pertama yang harus dilakukan adalah memperbarui proyek Anda.
Setelah mengambil pembaruan, mulailah pekerjaan Anda. Setelah Anda selesai membuat kode, periksa dengan benar, apakah aplikasi Anda berjalan dengan baik tanpa terkecuali. Setelah Anda yakin bahwa kode Anda berfungsi dengan baik, inilah waktunya untuk memasukkan kode.
Catatan: Saat memasukkan kode, jangan langsung berkomitmen. Lakukan sinkronisasi dengan server dan periksa apa saja yang perlu dilakukan. Catatan: Jangan lakukan seluruh folder satu kali. Karena Anda mungkin telah melakukan beberapa perubahan pada file untuk kebutuhan Anda atau Anda mungkin telah menghapus beberapa file di sistem lokal Anda. Tetapi pengaturannya berbeda di server. Jadi periksa file satu per satu dan lakukan kodenya.
Jangan lakukan / perbarui file konflik secara langsung.
Kapan harus mengganti dan memperbarui?
Ketika Anda cukup yakin bahwa Anda tidak memerlukan perubahan lokal apa pun dan ingin memperbarui salinan server sepenuhnya. Catat bahwa sekali jika Anda menimpa dan memperbarui, Anda tidak akan mendapatkan perubahan lokal Anda.
Catatan: Jangan simpan proyek tanpa memperbarui selama lebih dari satu hari. Juga jangan menyimpan kode tanpa melakukan selama beberapa hari.
Komunikasikan siapa yang semuanya bekerja dalam komponen yang sama dan diskusikan perubahan apa yang telah mereka buat setiap hari.
Jangan komit properti dan file konfigurasi kecuali ada beberapa alasan. Karena pengaturannya akan berbeda di server dan di cloud.
Jangan memasukkan folder target ke dalam SVN, hanya kode sumber dan folder sumber daya yang harus dipertahankan dalam repositori SVN.
Saat Anda kehilangan kode, jangan panik! Anda bisa mendapatkan kembali salinan sebelumnya dari riwayat SVN.
Jangan melakukan pembayaran proyek ke beberapa tempat di disk Anda. Lihat di satu lokasi dan kerjakan dengannya.
sumber
SVN sendiri merupakan awal yang baik dan beberapa poster lainnya telah menawarkan beberapa saran bagus tentang praktik terbaik.
Satu-satunya hal yang ingin saya tambahkan adalah Anda harus menghubungkan SVN dengan CruiseControl atau TeamCity untuk menjalankan proses Integrasi Berkelanjutan. Ini akan mengirimkan email build dan memberi tahu semua orang ketika seseorang merusak build.
Ini akan sangat memberi tahu sejak awal siapa yang mengikuti proses Anda dan siapa yang tidak. Mungkin menyebabkan beberapa gesekan tetapi tim Anda akan lebih baik dalam jangka panjang.
sumber
Komentar yang tepat untuk setiap komit
Jangan merusak bangunan (jalur utama)!
Berkomitmen segera setelah unit logis berubah
Hindari menggunakan Subversion sebagai alat cadangan
Sedikit percabangan / penggabungan mungkin
.
Detail selengkapnya dapat ditemukan di praktik terbaik SVN .
sumber
Lakukan pekerjaan DEV di Cabang
Batang Komunitas
Ingat bahwa semakin inkremental, modular, diskrit, dan ringkas Anda membuat komitmen, semakin mudah bagi Anda (atau kemungkinan orang lain) untuk:
sumber
Gunakan ini untuk template komentar:
[tugas / cerita xxx] [kecil / besar] [komentar] [komentar tindak lanjut] [URL ke bug]
sumber