Apakah praktik terbaik untuk memasukkan file .sln ke kontrol sumber? Kapan tepat atau tidak tepat untuk melakukannya?
Pembaruan Ada beberapa poin bagus yang dibuat dalam jawaban. Terima kasih atas tanggapannya!
Apakah praktik terbaik untuk memasukkan file .sln ke kontrol sumber? Kapan tepat atau tidak tepat untuk melakukannya?
Pembaruan Ada beberapa poin bagus yang dibuat dalam jawaban. Terima kasih atas tanggapannya!
Jawaban:
Saya pikir jelas dari jawaban lain bahwa file solusi berguna dan harus dilakukan, bahkan jika tidak digunakan untuk build resmi. Mereka berguna untuk siapa saja yang menggunakan fitur Visual Studio seperti Go To Definition / Declaration.
Secara default, mereka tidak berisi jalur absolut atau artefak khusus mesin lainnya. (Sayangnya, beberapa alat tambahan tidak memelihara properti ini dengan baik, misalnya, AMD CodeAnalyst.) Jika Anda berhati-hati menggunakan jalur relatif dalam file proyek Anda (baik C ++ dan C #), mereka akan menjadi mesin-independen terlalu.
Mungkin pertanyaan yang lebih berguna adalah: file apa yang harus Anda kecualikan? Berikut konten file .gitignore saya untuk proyek VS 2008 saya:
*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/
(Entri terakhir hanya untuk profiler AMD CodeAnalyst.)
Untuk VS 2010, Anda juga harus mengecualikan yang berikut ini:
ipch/
*.sdf
*.opensdf
Ya - Saya pikir itu selalu tepat. Pengaturan khusus pengguna ada di file lain.
Anda pasti harus memilikinya. Di samping alasan yang disebutkan orang lain, diperlukan satu langkah untuk membangun keseluruhan proyek.
Saya biasanya setuju bahwa file solusi harus diperiksa, namun, di perusahaan tempat saya bekerja, kami telah melakukan sesuatu yang berbeda. Kami memiliki repositori yang cukup besar dan pengembang mengerjakan berbagai bagian sistem dari waktu ke waktu. Untuk mendukung cara kami bekerja, kami akan memiliki satu file solusi besar atau beberapa yang lebih kecil. Keduanya memiliki beberapa kekurangan dan membutuhkan pekerjaan manual di pihak pengembang. Untuk menghindari ini, kami telah membuat plug-in yang menangani semua itu.
Plug-in memungkinkan setiap pengembang memeriksa subset dari pohon sumber untuk dikerjakan hanya dengan memilih proyek yang relevan dari repositori. Plugin kemudian menghasilkan file solusi dan mengubah file proyek dengan cepat untuk solusi yang diberikan. Ini juga menangani referensi. Dengan kata lain, yang harus dilakukan pengembang adalah memilih proyek yang sesuai dan kemudian file yang diperlukan dibuat / dimodifikasi. Ini juga memungkinkan kami menyesuaikan berbagai pengaturan lain untuk memastikan standar perusahaan.
Selain itu, kami menggunakan plugin untuk mendukung berbagai kebijakan check-in, yang biasanya mencegah pengguna mengirimkan kode yang salah / tidak sesuai ke repositori.
Ya, hal-hal yang harus Anda lakukan adalah:
Hal-hal yang tidak boleh Anda lakukan adalah:
Mengenai file yang dibuat secara otomatis lainnya, ada utas terpisah .
Ya, ini harus menjadi bagian dari kendali sumber. Kapan pun Anda menambahkan / menghapus proyek dari aplikasi Anda, .sln akan diperbarui dan akan lebih baik jika Anda memilikinya di bawah kendali sumber. Ini akan memungkinkan Anda untuk menarik kembali versi kode aplikasi 2 Anda dan langsung melakukan build (jika diperlukan).
Ya, Anda selalu ingin menyertakan file .sln, ini menyertakan tautan ke semua proyek yang ada dalam solusi.
Kami melakukannya karena itu membuat semuanya tetap sinkron. Semua proyek yang diperlukan ditempatkan bersama, dan tidak ada yang perlu khawatir kehilangan satu pun. Server build kami (Ant Hill Pro) juga menggunakan sln untuk menentukan project mana yang akan dibuat untuk rilis.
Kami biasanya meletakkan semua file solusi kami di direktori solusi. Dengan cara ini kami memisahkan solusi dari kode sedikit, dan lebih mudah untuk memilih proyek yang perlu saya kerjakan.
Satu-satunya kasus di mana Anda bahkan akan mempertimbangkan untuk tidak menyimpannya dalam kontrol sumber adalah jika Anda memiliki solusi besar dengan banyak proyek yang berada dalam kendali sumber, dan Anda ingin membuat solusi kecil dengan beberapa proyek dari solusi utama untuk beberapa persyaratan transien pribadi.
Kami menyimpan atau menyelesaikan file dalam Kontrol Versi TFS. Tetapi karena atau solusi utama sangat besar, sebagian besar pengembang memiliki solusi pribadi yang hanya berisi apa yang mereka butuhkan. File solusi utama sebagian besar digunakan oleh server build.
.slns adalah satu-satunya hal yang tidak bermasalah di tfs!