Kaynak denetimine .vcxproj.filter dosyaları eklemem gerekir mi?


169

Visual Studio 2010 Beta 2 değerlendirirken, ben dönüştürülen dizinde, benim görüyoruz vcproj dosyaları haline vcxproj dosyaları. Klasör yapısının bir tanımını (\ Kaynak Dosyaları, \ Başlık Dosyaları, vb.) İçeren her projenin yanında vcxproj.filter dosyaları da vardır .

Bu filtre dosyalarının kullanıcı başına tutulması gerektiğini mi yoksa tüm geliştirici grubunun tamamında paylaşılması ve SCC'de kontrol edilmesi gerektiğini mi düşünüyorsunuz?

Şu anki düşüncem onları kontrol etmek, ama bunu yapmamak için herhangi bir neden olup olmadığını veya kesinlikle onları kontrol etmem için iyi nedenler olup olmadığını merak ediyorum.

Bariz fayda, başka birinin makinesine baktığımda klasör yapılarının eşleşeceğidir, ancak belki de işleri mantıklı bir şekilde yeniden düzenlemek istiyorlar mı?

Yanıtlar:


59

Visual Studio'nun önceki sürümleri (en az 6.0 ve 2008 sürümleri) bu bilgileri kendi proje dosyalarında (sırasıyla .dsp ve .vcproj dosyaları) saklar ve bu da SCC'ye eklemek iyidir.

Bu .filter dosyalarını SCC'ye dahil etmemek için herhangi bir sebep düşünemiyorum


Seninleyim. Ben teslim. Teşekkürler!
jschroedl

111

.Filter'ı kasıtlı olarak çektik. .vcxproj MSBuild biçimine çevirdiğimizde .vcproj dosyasından dosya bilgileri. Bunun bir nedeni tam olarak belirttiğiniz şeydir, filtrelerin tamamen mantıklı bir görünüm olması ve farklı ekip üyelerinin farklı görüşler istemesi olabilir. Diğeri ise bazen derlemenin proje dosyasının zaman damgasını kontrol edecek ve değişmişse bir yeniden oluşturmayı tetikleyecek şekilde ayarlanmış olmasıdır - çünkü bu, oluşturulacak farklı kaynak dosyaları veya farklı ayarlar vb. Anlamına gelebilir. gerçekten bu şekilde tetikleme ile sevk edip etmediğimizi hatırlayın, ancak fikir, filtreleri yapıyı etkilemediğinden, sadece filtrelerin değiştiği için bir yeniden oluşturmayı tetiklemek istemediğimizdi.


3
otomatik yeniden oluşturma için, herhangi bir dosya değiştiğinde (ör. kaynak) oluşturursunuz, bu yüzden artık yönetilecek başka bir dosya dışında hiçbir şey değişmedi.
gbjbaanb

3
Biz onları kontrol sona erdi ve şimdiye kadar bu düzenleme ile mutlu. Aynı filtre yapısına sahip olmaları durumunda diğer geliştiricilerle çalışmak bizim için daha hoş görünüyor.
jschroedl

9
Onlara ayrı ayrı davranıyorum. Söz konusu olduğunda, proje durumunun bir parçası olarak korunması gereken daha az saçmalık, o kadar iyi, bu yüzden bunun iyi bir karar olduğunu düşünüyorum.
rwallace

6
Soyut / mantıksal bir ağaç kullanmak istemiyor, ancak sadece düz dosya sistemini görmek istiyorsak, bu filtreleri tamamen devre dışı bırakabilir miyiz?
Johan Boulé

4
@JohanBoule: Kesinlikle katılıyorum! IDE'deki filtreleri yeni çıkarmış olmalılar. Zaten mantıksal bir ağaç yapısı var ve buna "dosya sistemi" deniyor. Şu anda çok fazla çoğaltma var - her dosya dosya sistemine, yapı komut dosyasına (vcxproj), filtrelere (vcxproj.filters), kaynak kontrolüne ve belki de başka bir yere eklenmelidir. KURU prensibini ihlal eder. Neyse ki filtre dosyalarının isteğe bağlı olduğu anlaşılıyor . Bunları silebilir ve IDE'deki "Tüm Dosyaları Göster" düğmesini kullanabilirsiniz. Yazık ki varsayılan değil.
Yakov Galka

5

Git'i kullanırsanız .filter dosyalarını birleştirmek için birleştirme olarak işlem görecek şekilde işaretleyebilirsiniz. Sadece satırı ekleyin:

*.vcxproj.filters merge=union

.gitattributes dosyanıza.

Daha fazla ayrıntı için Birleştirme çakışmalarını önlemek için .gitattributes kullanma konusuna bakın.


Belirtilen bağlantı, bu .filters dosyasının gitattributes dosyasında "birleşim" değerinde olması gerektiğini söylemez.
ollydbg23

2
Ama ne olduğunu söyler merge=union- başka bir şey vaat edilmedi. Bu bilgi ve * .filter dosyalarının nasıl göründüğüne dair çok geniş merge=unionbir fikirle, bu dosyalar için neden iyi bir fikir olduğunu görmek kolaydır .
Peter Schneider

1

Bu kullandığınız durumda eklenmemelidir CMakegibi dosyaları oluşturmak için (veya benzeri yapı araçları) *.sln, *.vcxproj, *.vcxproj.filtersbu dosyalar Proje Klasör ve diğer tam yolunu içerdiğinden, vb sadece bilgisayarınızın belirli klasörler .

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.