Oceniając Visual Studio 2010 Beta 2, widzę, że w katalogu przebudowanej, moi vcproj pliki stał vcxproj plików. Obok każdego projektu znajdują się również pliki vcxproj.filter, które wydają się zawierać opis struktury folderów (\ Source Files, \ Header Files itp.).
Czy uważasz, że te pliki filtrów powinny być przechowywane dla poszczególnych użytkowników, czy też powinny być udostępniane całej grupie deweloperów i wpisywane do SCC?
Obecnie myślę o sprawdzeniu ich, ale zastanawiam się, czy są jakieś powody, aby tego nie robić, albo może dobre powody, dla których powinienem zdecydowanie je zameldować.
Oczywistą korzyścią jest to, że struktury folderów będą się zgadzać, jeśli patrzę na komputer innej osoby, ale może chcieliby logicznie uporządkować rzeczy?
Celowo wyciągnęliśmy .filter. informacje o plikach z .vcproj po przetłumaczeniu na format .vcxproj MSBuild. Jednym z powodów jest dokładnie to, co wskazałeś, że filtry są czysto logicznym widokiem, a różni członkowie zespołu mogą chcieć różnych poglądów. Po drugie, czasami kompilacja jest skonfigurowana do sprawdzania sygnatury czasowej pliku projektu i wyzwalania odbudowy, jeśli uległa zmianie - ponieważ może to oznaczać, że są różne pliki źródłowe do zbudowania lub inne ustawienia itp. Nie. Przypomnijmy sobie, że faktycznie wysyłaliśmy z wyzwalaniem kompilacji w ten sposób, ale chodziło o to, że nie chcieliśmy wywoływać przebudowy tylko dlatego, że zmieniły się filtry, ponieważ nie mają one wpływu na kompilację.
źródło
Właśnie odkryłem, że jeśli używasz Gita, możesz oznaczyć pliki .filter, aby były traktowane jako unia do scalania, aby było to prostsze. Po prostu dodaj linię:
do pliku .gitattributes.
Aby uzyskać więcej informacji, zobacz Używanie .gitattributes w celu uniknięcia konfliktów przy scalaniu .
źródło
merge=union
robi - nic więcej nie zostało obiecane. Mając tę wiedzę i bardzo ogólne pojęcie o tym, jak wyglądają pliki * .filter, łatwo jest zrozumieć, dlaczegomerge=union
jest to dobry pomysł na te pliki.To nie powinno być dodawane w przypadku używanego
CMake
(lub podobne narzędzia kompilacji) do generowania plików, takich jak*.sln
,*.vcxproj
,*.vcxproj.filters
itd., Ponieważ te pliki mogą zawierać pełną ścieżkę do folderu projektu i innych tylko konkretnych folderów komputera .źródło