TFS'nize bin veya hata ayıklama klasörlerini (ve dll'lerini) iade ediyor musunuz?


11

TFS hakkında hızlı soru - Bin / hata ayıklama klasörlerini TFS'ye giriyor musunuz? (öyleyse, neden?) Bu klasörlerin içeriği dinamik olarak oluşturulduğundan, programcının salt okunur sorunlarla karşılaşmaması için onları dışarıda bırakmak daha iyidir?


Bu yığın değişim teklifiyle ilgileniyor olabilirsiniz . Beta sürümüne başlamak için neredeyse hazır, sadece birkaç tane daha gerekiyor.
greatwolf

Yanıtlar:


27

Genel bir kural olarak, kaynak kontrolü en iyi şekilde yalnızca kaynak için kullanılır ve oluşturulan dosyalar kaynak değildir.

İstisnalar var. Bazen (Visual Studio kullanarak) .pdb dosyasını minidumps okumak için saklamak isteyebilirsiniz. Bazen bir araç zincirini çoğaltamazsınız, böylece oluşturulan dosyaları doğru bir şekilde yeniden oluşturamazsınız. Bu durumlarda, öncelikle her VCS değişikliği için değil, yayınlanan yazılım için bunu yapmakla ilgilenirsiniz ve her durumda bunlar sürüm klasörlerinde kolayca bulunabilir. (Bunlar genellikle ikili dosyalardır ve bir sürümden diğerine anlaşılır değişikliklere sahip değildir ve VCS'de olmaktan çok fazla fayda sağlamaz.)


6
Hata ayıklama sembollerini tutmakla ilgileniyorsanız, bir sembol sunucusu kurmanız daha iyi olur . Bunu doğru yaparsanız (kaynak indeksleme ile), bir minidump hata ayıklamak önce sembol sunucunuzdan semboller ve sonra kaynak kontrolünüzden ilgili kaynağı çeker ... bunu manuel olarak yapın.
Shog9

8

Basit cevap? Hayýr. Yapma! Yapmamak için pek çok neden düşünemiyorum, ama istememek için hiçbir neden yok.

Bir dll kontrol düşünebilirsiniz tek zaman, her geliştirici oluşturmak için yüklemiş beklemediğiniz bir üçüncü taraf kitaplığından olmasıdır. Ama yine de, bu bin klasöründe bulunmuyor.

Her dağıtım paketinin kaynak kontrolüne alınmasını gerektiren bir şirkette çalıştığım söyleniyordu, ancak bu, müşterimize verdiğimiz çeşitli yapıları izleyebilmemiz ve gerekirse geri dönebilmemizdi.


1
Asıl neden: Kaynak kontrolünüzün kaç terabayt depolama alanı tüketmesini istiyorsunuz?
EKW

1
@EKW C # örneğin tarihsel olarak aynı kaynaktan aynı ikili dosyalar üretmez. Bu şimdi .NET Core ile farklı olabilir, ancak bu, örneğin yayınlanan sürümler için oluşturulan ikili dosyaları tutmanın bir nedeniydi. Yine de onları kaynak kontrolüne sokmam. Bu iş için doğru araç değil.
Shiv

5

Bin klasörünü TFS olarak kontrol etmiyoruz. Muhtemelen fark ettiğiniz gibi, bunu yaparsanız, herhangi bir geliştirici çözümü her oluşturduğunda, bin klasörünü kontrol ederler. İyi değil. Ancak, derlemek ve çalıştırmak için projenin ihtiyaç duyduğu kütüphaneler vardır ve kuralımız herhangi bir projenin kaynak kontrolünden açılabilmesi ve derlenmesi ve çalıştırılmasıdır. Bu nedenle, projenin başvurması gereken tüm DLL'ler için bir "BinRef" klasörü oluşturmak ve BinRef klasöründeki kopyaya Proje Referansları oluşturmaktır. BinRef klasör olduğu TFS kontrol etti.

Bu yaklaşımın diğer bir avantajı BinRef'in her zaman web projesinin kök düzeyinde olmasıdır. Projem yaşıyor C:\Projects\Marcie\SomeProjectCategory\ProjectAve ben oturan bir DLL başvurusu oluşturursanız C:\DLLsThatILike, başvuru sonunda gibi bir şey bakmak

\..\..\..\NiceThing.dll

. Proje dosyalarınızı saklayabilirsiniz, C:\ProjectAbu da NiceThing proje referansının makinenizde patlayacağı anlamına gelir. Umarım insanlar bu şekilde referans yapmazlar, ama bunun olduğunu gördüm.


2

Değişiklik Talebi sürecimizin bir parçası olarak çöp kutusu dizinlerinin içeriğini kontrol ediyoruz. Salt okunur sorunlardan kaçınmak için içeriği ayrı bir klasöre kopyalarız ve oradan kontrol ederiz. Kurumsal politikamız, üretime giren tüm ikili dosyaların kaynaktan ayrı olarak teslim edilmesini gerektirir. En iyi çözüm değil ama işe yarıyor ve bize üretimde olan dosyaları veriyor.


2
İlk başta bu cevabı geçecektim, sonra biraz daha düşündüm. Şirketimde gerçekten bir Olağanüstü Durum Kurtarma planımız yok (girmek için çok uzun). Sıfırdan başlamak zorunda kalırsanız bu yararlı olabilir. İkili dosyaları kaynak denetiminden çıkarabilir, sunucuya atabilir ve yapılabilirim.
user7676

@ user7676 - kodu üretim aşamasında olan sürüm numarasından yeniden derleyebilirsiniz. Ancak, DR planınız yoksa ve bir çeşit diastersanız, yolunuz daha kolay ve daha hızlı olacaktır. PS. DR PLANI GEREKİR !!!
Ali

1

Herhangi bir metin olmayan dosyayı kaynak denetiminde kontrol etmek için tereddüt. Özellikle geliştirici tarafından üretilmesi gerekenler. Ayrıca her etiket / sürüm için sıkıştırılmış ve başka bir yerde saklanan görüntüler ve PDF'ler gibi diğer ikili dosyaları tutmak istiyorum.


0

Hayır, ama şirket içi proje kontrol aracımız otomatik olarak yapar, bu da beni benden rahatsız eder.

Benim çözüm sürüm ve hata ayıklama tüm dosyaları yazılabilir olarak işaretlemek ve TFS şikayet zaman dosyaları görmezden söyle, bu yüzden bir derleme başarısız bir sorun asla.


0

Onları kaynak denetimine sokmaktan kaçınırım. Bunlar gereksiz bilgilerdir, ikili dosyalar bu revizyondaki kaynak kodu tarafından oluşturulabilir. Ayrıca, kaynak kodu her zaman güncel, derlemeler taahhütte olmayabilir.


0

Başka bir projeden .NET birlikte çalışma gibi oluşturulan bazı ikili dosyaları kaydedin. Bir COM nesnesi oluşturan bir proje A varsa ve sonra bu COM nesnesini .NET birlikte çalışma yoluyla kullanan çok gevşek ilişkili bir proje B'de kullanırsanız, A projesinden B projesine oluşturulan bu birlikte çalışma kontrol edin. iyi bir fikir değil, ama bir yere gitmek zorunda çünkü AFAIK Visual Studio derleme sırasında sizin için otomatik olarak birlikte çalışma oluşturmaz.


-2

Kanımca, ikili dosyaları kaynak kontrolünde depolamamak en yaygın hatalardan biridir. Kaynaklarla birlikte depolanmalı, versiyonlandırılmalı, temel alınmalı / etiketlenmeli ve ayrıca araçlar oluşturulmalıdır. İzlenebilir olmayan yazılımlar ile kendinizi geliştirin ...


5
Fikrinizi söylediniz, ancak bunun neden iyi bir uygulama olduğuna dair herhangi bir neden belirtmediniz. Bu konuyla ilgilenen biri daha fazla destek almadan bu cevaptan çok az değer alacaktır.
Walter
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.