Hangi Visual C ++ dosya türleri sürüm denetimine bağlanmalıdır?


170

Hangi Visual Studio \ Visual C ++ dosya türleri sürüm kontrolüne bağlanmalıdır?
Projemde aşağıdaki dosya türleri var:

aps
cpp
exe
filters
h
ico
idb
ipch
lastbuildstate
lib
log
manifest
obj
pch
pdb
rc
rc2
res
sdf
sln
suo
tlog
txt
user
vcxproj

Her biri için kısa bir muhakeme takdir ediyorum. Bunlardan herhangi biri tartışmalı ise, lütfen not edin. Tam olarak önemsiz dosya türlerini bile dahil ediyorum.

DÜZENLE

Bir yandan gelecekte platformdan bağımsız olmak istiyorum. Öte yandan yakın gelecekte benzer kurulumlara sahip ekip üyeleriyle çalışmak istiyorum. Ayarlar arasındaki klasör uyumluluğu kesinlikle bir seçenektir, bu nedenle iş akışını kolaylaştırırsa yolları tutan yapılandırma dosyaları dahil edilebilir.
Yine, ne olduğunu bir açıklama kesinlikle takdir ediyorum.


23
Vay canına, bu soru VS'nin projenizin dizininde oluşturmakta ısrar ettiği artan sayıda geçici dosyanın gerçek bir kanıtıdır.
Nik Reiman

@Nik: projenin dizininde değiller.
Hans Passant

1
@Hans, ya orada ya da bir proje alt dizini altında
Nik Reiman

@Nik: msbuild goo değil. Hangi temp dosyaları ile demek istedim. Katılıyorum, hoş değil.
Hans Passant

6
Sizi Xilinx'in İMKB geliştirme ortamını (HDL programlama için) denemeye ve kaç tane geçici dosya yayınladığını görmeye davet ediyorum. Yüzlerce uzantıya sahip yüzlerce dosya :) Bir karmaşa hakkında konuşun. Visual Studio karşılaştırıldığında çok temiz.
Mark Lakata

Yanıtlar:


232

Evet:

  • cpp: kaynak kodu
  • filtreler: proje dosyası
  • h: kaynak kodu
  • ico: kaynak
  • rc: kaynak betiği
  • rc2: kaynak betiği
  • sln: proje dosyası
  • txt: proje elemanı
  • vcxproj: proje dosyası

Hayır:

  • aps: son kaynak düzenleyici durumu
  • exe: sonuç oluşturma
  • idb: yapı durumu
  • ipch: yardımcı oluştur
  • lastbuildstate: yapı yardımcısı
  • lib: sonuç oluşturma. 3. taraf olabilir
  • log: günlük oluştur
  • manifest: yardımcı oluştur. Kendiniz yazılabilir.
  • obj: yardımcı oluştur
  • pch: yardımcı oluştur
  • pdb: sonuç oluşturma
  • res: yardımcı oluştur
  • sdf: intellisense dbase
  • suo: çözüm kullanıcı seçenekleri
  • tlog: derleme günlüğü
  • kullanıcı: hata ayıklama ayarları. Yalnızca bir geliştirici veya özel hata ayıklama ayarı olup olmadığını koruyun

Bunların birçoğu iffy çünkü her ikisi de otomatik olarak oluşturulabilir ve kendiniz korunabilir. Listenizde görünmeyen birkaç tane daha var. Öncelikle dosyanın bulunduğu yere dikkat edin. Çözümünüzde veya proje dizininizde varsa, büyük olasılıkla kontrol etmek istersiniz. Hata Ayıklama veya Serbest Bırakma alt dizinlerinde büyük olasılıkla olası değildir. Build + Clean birçok gürültü dosyasını kaldırır. Ve elbette: check-in, proje dizinini yeniden adlandırın, check-out yapın ve oluşturulduğunu doğrulayın.


Bu çok faydalı. Projemde de bir .vcb var (bu proje daha eski bir sürümden (eVC) dönüştürüldü, bu yüzden bununla ilgili olabilir.
Robbie Matthews

.vcxproj.filtersDosyalar ne olacak ?
John Alexiou

1
Ayrıca .OPENSDF için NO
Zam

1
@ ja72 filters, yanıtın ilk revizyonundan bu yana "evet" listesinde yer alıyor
Asteroids With Wings

26

Listenizden bunları seçerdim:

cpp
filters
h
ico
manifest
rc
rc2
sln
txt
vcxproj

Genel olarak, projeyi oluşturmak için gereken tüm dosyaları sürümlendirmelisiniz. Otomatik oluşturulan dosyalar imho arşivlenmemelidir.


@ milan1612 özlü liste için teşekkür ederim. Hans Passant'ın cevabı ile karşılaştırıldığında, yapmamam gerektiğini söylediği manifest dosyalarını yürütmem gerektiğini söyledin. Bu dosyanın ne anlama geldiğini ve bununla ilgili neden, özellikle de bir ekip (ve gelecekteki çapraz platform) ortamında çalışmam gerektiğini düşünebilir misiniz?
Jonathan

3
manifestlerin farklı amaçları olabilir. Pencerelerime stil uygulamak için pencerelere neden olan bir kaynak dosyasına dahil olanları manuel olarak oluşturdum. Ayrıca, yürütülebilir dosya yanında standart kitaplık dll dağıtmak için izin manifests vardır. uygulamanızla ilgili meta verileri düşünün ...
Milan

@ milan1612 - Ek bir türle karşılaştım - suo, bu da eklenmeli mi? öyleyse, tamlık için listenize ekleyebilir misiniz?
Jonathan

3
@Jonathan Suo, çözümle ilgili geliştiriciye özgü verileri tutar (hangi dosyaların açık olduğu veya çözüm gezgininde hangi klasörlerin açık / daraltıldığı gibi). Bu nedenle, sürüm kontrolünde olmamalıdır.
Daniel Rose

1
@ milan1612 - Daniel Rose'un girişini takiben, suo'yu listenizden kaldırabilir misiniz?
Jonathan

17

Microsoft tarafından önerildiği gibi, sürüm denetimine dahil edilmesi gereken dosya türleri:

.mak, .dsp, .c, .rc, .rc2, .ico, .bmp, .txt, .def, .hpj, .bat, .rtf, .odl, .inf, .reg, .cnt, .cpp , .cxx, .h, .hpp, .hxx, .inl, .tpl, .vtp ve .mst ...

Dahil edilmemesi gereken dosya türleri:

.pch, .mdp, .ncb, .clw, .obj, .exe, .aps, .cpl, .awk, .exp, .lib, .idb, .opt, .pdb, .map, .res, .ilk , .scc, .bsc, .sbr, .dll ve .tlb ...

Ancak exe dosyasında veya harici kütüphanede harici bir araç kullanılması durumunda, sürüm kontrolüne de dahil edilmesi gerektiğini düşünüyorum

BILGI: Hangi Visual C ++ dosyaları kaynak kodu denetimine eklenecek

Ayrıca, bu bağlantı , Visual Studio 2017'deki Visual C ++ Projeleri için Dosya Türlerini açıklar .


7

Projeye sağ tıklarsanız, bağlam menüsünde "Kaynak Kontrolüne Çözüm Ekle" seçeneği bulunmalıdır.

Bunu kullanırsanız, yalnızca gerekli olan dosyalar eklenir. Tüm ara ve çıktı dosyaları yok sayılır.


4

Diğer cevaplar mükemmel; Yararlı küçük bir araca katkıda bulunacağımı düşündüm. Check out Visual Studio .gitignore şablonu GitHub'dan. Yaygın olarak sürüm kontrolünün dışında tutulan aktif bir şekilde tutulan dosyaların bir listesidir.

Eğer bunu yaparken Ve, bütün gitignore deposu gelen gelişme her türlü için çok yararlı bir kaynaktır ActionScript için Zend . Git'i kullanmıyorsanız, gitignore dosyalarını yine de referans olarak kullanabilirsiniz.


1

Genel olarak, Çözüm Gezgini'nde görünen tüm dosyaları sürüm denetimine eklemeniz gerekir. Ayrıca, .sln (çözüm dosyası) ve .vcproj / .vcxproj / .vbproj / .csproj dosyalarını (proje dosyası) dahil etmeniz gerekir.

TFS veya AnkhSvn gibi Visual Studio için bir kaynak kontrol eklentiniz varsa, bununla ilgilenmenize gerek olmadığını unutmayın. Visual Studio, hangi dosyaların sürüm denetiminde olması gerektiğini bilir ve verileri kaynak denetim eklentisine verir. Yalnızca harici bir araç kullanıyorsanız (örn. TortoiseSVN) böyle bir listeye sahip olmanız gerekir.


0

Yalnızca hedefinizi oluşturmak için gereken kuvvetler. Bence bu sadece .cpp .h .ico .rc .txt .manifest .rc2

Sdf, aps, filtreler, kullanıcı ne olduğunu bilmiyorum, benim C ++ yapıları onları görmedim.

Sadece programcı yazılı kod içerip içermediklerini veya VS tarafından üretilip üretilmediğini araştırın.


4
Elbette .sln ve .vcxproj gereklidir - projeyi ve çözümü tanımlarlar.
Sharptooth

Evet, tefecilik yapmazsan. Üzgünüm kişisel olarak Anti-VS / MS, geliştiricileri için tek araç olarak Visual Studio kullanan insanlar olduğunu unuttum. Sadece hata ayıklayıcıyı kullanıyorum.
Lothar

3
Peki, VS proje dosyaları da tefeci
Milan

-2

Daha önceki bir yanıtta belirtilenlerin aksine, kullanıcı seçeneklerini takip etmek için .opt dosyasını sürüm kontrolünün önemli olduğunu belirtmek isterim. Aşağıdaki referansa bakın:

https://msdn.microsoft.com/en-us/library/aa278994(v=vs.60).aspx


1
.opt dosyaları programınızın derlenme biçimini değil IDE'nin görünümünü ve hissini kontrol eder . Yani IDE hakkında iyi hissettiğiniz şeyler başkaları açısından mutlaka iyi değil
phuclv
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.