Które typy plików Visual Studio \ Visual C ++ powinny zostać zatwierdzone do kontroli wersji?
W swoim projekcie mam następujące typy plików:
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
Byłbym bardzo wdzięczny za krótkie uzasadnienie każdego. Jeśli którekolwiek z nich są kontrowersyjne, zanotuj to. Celowo dołączam nawet trywialne typy plików dla kompletności.
EDYTOWAĆ
Z jednej strony chciałbym być w przyszłości niezależny od platformy. Z drugiej strony chciałbym w najbliższej przyszłości pracować z członkami zespołu o podobnych konfiguracjach. Zgodność folderów między konfiguracjami jest z pewnością opcją, więc pliki konfiguracyjne przechowujące ścieżki mogą być uwzględnione, jeśli ułatwi to przepływ pracy.
Ponownie, z pewnością doceniłbym wyjaśnienie, co jest.
Odpowiedzi:
Tak:
Nie:
Niektóre z nich są niepewne, ponieważ mogą być zarówno generowane automatycznie, jak i obsługiwane samodzielnie. Jest jeszcze kilka, których nie ma na Twojej liście. Przede wszystkim zwróć uwagę na lokalizację pliku. Jeśli znajduje się w katalogu rozwiązania lub projektu, jest wysoce prawdopodobne, że zechcesz to sprawdzić. W podkatalogach Debug lub Release jest to wysoce nieprawdopodobne. Build + Clean usuwa wiele plików szumów. I oczywiście: zaewidencjonuj, zmień nazwę katalogu projektu, wyewidencjonuj i sprawdź, czy się buduje.
źródło
.vcxproj.filters
plikami?filters
się na liście „tak” od pierwszej wersji odpowiedziZ Twojej listy wybrałbym te:
Ogólnie rzecz biorąc, powinieneś wersjonować wszystkie pliki niezbędne do zbudowania projektu. Pliki generowane automatycznie nie powinny być archiwizowane imho.
źródło
Zgodnie z sugestią firmy Microsoft, typy plików, które powinny być uwzględnione w kontroli wersji:
Typy plików, których nie należy uwzględniać w:
Ale w przypadku korzystania z zewnętrznego narzędzia w pliku exe lub zewnętrznej bibliotece myślę, że powinno ono również zostać uwzględnione w kontroli wersji
INFO: Które pliki Visual C ++ dodać do kontroli kodu źródłowego
Ponadto to łącze opisuje typy plików dla projektów Visual C ++ w programie Visual Studio 2017.
źródło
Jeśli klikniesz prawym przyciskiem myszy projekt, w menu kontekstowym powinna pojawić się opcja „Dodaj rozwiązanie do kontroli źródła”.
Jeśli tego użyjesz, zostaną dodane tylko te pliki, które są niezbędne. Wszystkie pliki pośrednie i wyjściowe zostaną zignorowane.
źródło
Pozostałe odpowiedzi są doskonałe; Pomyślałem, że wniosę przydatne małe narzędzie. Zapoznaj się z szablonem Visual Studio .gitignore w witrynie GitHub. Jest to ładna, aktywnie utrzymywana lista plików, które są często poza kontrolą wersji.
A skoro już o tym mowa, całe repozytorium gitignore jest bardzo użytecznym źródłem dla wszelkiego rodzaju programów, od ActionScript po Zend . Jeśli nie używasz Gita, nadal możesz używać plików gitignore jako odniesienia.
źródło
Ogólnie rzecz biorąc, należy dodać wszystkie pliki, które pojawiają się w Eksploratorze rozwiązań, do kontroli wersji. Ponadto należy dołączyć pliki .sln (plik rozwiązania) i .vcproj / .vcxproj / .vbproj / .csproj (plik projektu).
Zwróć uwagę, że jeśli masz wtyczkę kontroli źródła dla programu Visual Studio, taką jak TFS lub AnkhSvn, nie musisz się tym wyraźnie przejmować. Program Visual Studio wie, które pliki muszą być objęte kontrolą wersji i przekazuje dane do wtyczki kontroli źródła. Tylko jeśli używasz narzędzia zewnętrznego (np. TortoiseSVN), potrzebujesz takiej listy.
źródło
Tylko te elementy, które są potrzebne do zbudowania celu. Myślę, że to jest po prostu .cpp .h .ico .rc .txt .manifest .rc2
Nie wiem, co to jest sdf, aps, filtry, użytkownik, nie widziałem ich w moich kompilacjach C ++.
Wystarczy spojrzeć i dowiedzieć się, czy zawierają kod napisany przez programistę, czy też są generowane przez VS.
źródło
W przeciwieństwie do tego, co zostało powiedziane we wcześniejszej odpowiedzi, chciałbym zwrócić uwagę, że kontrola wersji pliku .opt wydaje się być ważna w celu śledzenia opcji użytkownika. Zobacz odniesienie poniżej:
https://msdn.microsoft.com/en-us/library/aa278994(v=vs.60).aspx
źródło