Saya bertanya pada diri sendiri pertanyaan yang sama ketika kami datang untuk mengimplementasikan Subversion di sini - sekitar 20 pengembang yang tersebar di 4 - 6 proyek. Saya tidak menemukan satu pun sumber yang bagus dengan '' jawabannya ''. Berikut adalah beberapa bagian dari bagaimana jawaban kami berkembang selama 3 tahun terakhir:
- Berkomitmen sesering mungkin; aturan dasar kami adalah komitmen setiap kali Anda telah melakukan pekerjaan yang cukup bahwa itu akan menjadi masalah harus melakukannya kembali jika modifikasi hilang; kadang-kadang saya komit setiap 15 menit atau lebih, kadang-kadang mungkin berhari-hari (ya, kadang-kadang butuh sehari untuk menulis 1 baris kode)
- kami menggunakan cabang, seperti yang disarankan salah satu dari jawaban Anda sebelumnya, untuk jalur pengembangan yang berbeda; saat ini untuk salah satu program kami, kami memiliki 3 cabang aktif: 1 untuk pengembangan utama, 1 untuk upaya yang belum selesai untuk memparalelkan program, dan 1 untuk upaya merevisinya untuk menggunakan input XML dan file output;
- kami jarang menggunakan tag, meskipun kami pikir kami harus menggunakannya untuk mengidentifikasi rilis untuk produksi;
Pikirkan pengembangan yang berjalan di satu jalur. Pada suatu waktu atau keadaan pengembangan pemasaran memutuskan untuk merilis versi pertama produk, sehingga Anda menanam bendera di jalur berlabel '1' (atau '1,0' atau apa pun). Pada waktu lain, beberapa percikan terang memutuskan untuk memparalelkan program, tetapi memutuskan bahwa itu akan memakan waktu berminggu-minggu dan bahwa orang-orang ingin terus menyusuri jalan utama sementara itu. Jadi, Anda membuat garpu di jalan dan orang-orang yang berbeda berkeliaran di berbagai garpu.
Bendera di jalan disebut 'tag', dan garpu di jalan adalah tempat 'cabang' membelah. Kadang-kadang, juga, cabang-cabang kembali bersama.
- kami menempatkan semua bahan yang diperlukan untuk membangun yang dapat dieksekusi (atau sistem) ke dalam repositori; Itu berarti setidaknya kode sumber dan membuat file (atau file proyek untuk Visual Studio). Tetapi ketika kita memiliki ikon dan file konfigurasi dan semua hal lainnya, itu masuk ke repositori. Beberapa dokumentasi menemukan jalannya ke dalam repo; tentu saja dokumentasi seperti file bantuan yang mungkin merupakan bagian integral dari program, dan ini merupakan tempat yang berguna untuk meletakkan dokumentasi pengembang.
Kami bahkan menempatkan executable Windows untuk rilis produksi kami di sana, untuk menyediakan satu lokasi bagi orang yang mencari perangkat lunak - rilis Linux kami menuju ke server sehingga tidak perlu disimpan.
- kami tidak mengharuskan repositori setiap saat mampu memberikan versi terbaru yang dibuat dan dijalankan; beberapa proyek bekerja seperti itu, beberapa tidak; keputusan ada pada manajer proyek dan tergantung pada banyak faktor, tetapi saya pikir itu rusak ketika membuat perubahan besar pada suatu program.