Pertanyaan cepat tentang TFS - Apakah kalian masuk ke folder bin / debug ke TFS? (jika demikian, mengapa?) Karena konten folder tersebut dihasilkan secara dinamis, lebih baik membiarkannya keluar sehingga programmer tidak akan mengalami masalah read-only?
team-foundation-server
aggietech
sumber
sumber
Jawaban:
Sebagai aturan umum, kontrol sumber paling baik digunakan untuk sumber saja, dan file yang dihasilkan bukan sumber.
Ada beberapa pengecualian. Terkadang (menggunakan Visual Studio) Anda mungkin ingin menyimpan file .pdb untuk membaca minidumps. Terkadang Anda tidak dapat menduplikasi rantai alat, sehingga Anda tidak dapat membuat ulang file yang dihasilkan secara akurat. Dalam kasus ini, Anda terutama tertarik melakukan ini untuk perangkat lunak yang dirilis, bukan untuk setiap perubahan VCS, dan dalam hal apa pun ini dapat dengan mudah berada di folder berversi. (Lagi pula, ini biasanya file biner, dan tidak memiliki perubahan yang dapat dipahami dari satu versi ke versi lain, dan tidak mendapatkan banyak manfaat dari berada di VCS.)
sumber
Jawaban sederhana? Tidak. Jangan lakukan itu! Saya tidak dapat memikirkan banyak alasan untuk tidak melakukannya, tetapi tidak ada alasan mengapa Anda menginginkannya.
Satu-satunya waktu saya bisa berpikir Anda akan check in dll adalah jika itu dari perpustakaan pihak ketiga yang Anda tidak harapkan setiap pengembang untuk menginstal dibangun. Tapi meski begitu, itu tidak terletak di folder bin.
Oleh karena itu saya bekerja di satu perusahaan yang mengharuskan setiap paket penempatan dimasukkan ke dalam kendali sumber, tetapi itu adalah agar kami dapat melacak berbagai build yang kami berikan kepada klien kami dan dapat dengan mudah memutar kembali jika perlu.
sumber
Kami tidak memeriksa dalam folder bin ke TFS. Seperti yang mungkin Anda perhatikan, jika Anda melakukannya, setiap kali pengembang membangun solusi, mereka akan memeriksa folder tempat sampah. Tidak baik. Namun ada perpustakaan yang dibutuhkan proyek untuk dikompilasi dan dijalankan, dan aturan kami adalah bahwa setiap proyek harus dapat dibuka dari kontrol sumber, dan itu harus dikompilasi dan dijalankan. Jadi yang kita lakukan adalah membuat folder "BinRef" untuk setiap DLL yang harus dirujuk oleh proyek, dan membuat Referensi Proyek untuk salinan di folder BinRef. Folder BinRef yang diperiksa untuk TFS.
Keuntungan lain dari pendekatan ini adalah bahwa BinRef selalu berada pada level root dari proyek web. Jika proyek saya hidup
C:\Projects\Marcie\SomeProjectCategory\ProjectA
dan saya membuat referensi ke DLL yang dudukC:\DLLsThatILike
, referensi akan terlihat seperti\..\..\..\NiceThing.dll
. Anda dapat menyimpan file proyek Anda
C:\ProjectA
yang berarti bahwa referensi proyek ke NiceThing akan meledak di mesin Anda. Mudah-mudahan orang tidak melakukan referensi dengan cara ini, tetapi saya telah melihatnya terjadi.sumber
Kami memeriksa isi direktori bin sebagai bagian dari proses Permintaan Perubahan kami. Untuk menghindari masalah baca-saja, kami menyalin konten ke folder terpisah dan memeriksanya di sana. Kebijakan perusahaan kami mengharuskan semua biner yang menuju produksi diperiksa secara terpisah dari sumbernya. Ini bukan solusi terbaik tetapi berfungsi dan itu memberi kita file yang tepat yang sedang dalam produksi.
sumber
Saya ragu untuk memeriksa file non-teks ke dalam kontrol sumber. Terutama yang harus dihasilkan oleh pengembang. Saya juga suka menyimpan file biner lainnya, seperti gambar dan PDF, di-zip dan disimpan di tempat lain untuk setiap tag / rilis.
sumber
Tidak, tetapi alat kontrol proyek in-house kami tidak secara otomatis, yang mengganggu saya.
Solusi saya adalah menandai semua file dalam rilis dan debug sebagai dapat ditulis dan ketika TFS mengeluh saya memintanya untuk mengabaikan file, jadi saya tidak pernah memiliki masalah dengan build gagal.
sumber
Saya menghindari memasukkan mereka ke dalam kontrol sumber. Mereka informasi yang berlebihan, binari dapat dibangun oleh kode sumber dalam revisi itu. Selain itu, kode sumber selalu mutakhir, build mungkin tidak sedang dikomit.
sumber
Saya menyimpan beberapa file biner yang dihasilkan, seperti .NET interops dari proyek lain. Jadi jika saya memiliki proyek A yang membuat objek COM, dan kemudian Anda menggunakan objek COM dalam proyek B yang sangat longgar terkait yang menggunakannya melalui .NET interop, saya memeriksa bahwa interop yang dihasilkan dari proyek A ke proyek B. Itu adalah bukan ide yang baik, tetapi harus pergi ke suatu tempat karena AFAIK Visual Studio tidak akan membuat interop untuk Anda secara otomatis selama pembuatan.
sumber
Menurut pendapat saya, tidak menyimpan binari dalam kontrol sumber adalah salah satu kesalahan paling umum. Mereka harus disimpan, versi, baselined / label bersama dengan sumber dan juga membangun alat. Sesuaikan diri Anda dengan pembuatan perangkat lunak yang tidak dapat dilacak ...
sumber