• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

.gitignore dla projektu w VS2017 (w C++)

Object Storage Arubacloud
0 głosów
442 wizyt
pytanie zadane 29 kwietnia 2018 w Systemy operacyjne, programy przez Piotr Batko Stary wyjadacz (13,190 p.)

Jakie pliki powinien śledzić git w projekcie C++ w Visual Studio 15 2017? Wzoruję się na konfiguracji z tej stronki:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Oczywiście odrzuciłem wszystkie pliki generowane na podstawie kodu oraz cache Visual Studio. Odrzuciłem także wszystkie pliki *.user (to z wzorcowej konfiguracji z linku), bo zgaduję, że każdy użytkownik może sobie je zmieniać i nie chcemy o tym powiadamiać reszty. Mój obecny .gitignore wygląda tak:

.vs/

[Dd]ebug
[Rr]elease

*.user

Obecnie zastanawiam się nad plikami ProjectName.vcxproj i ProjectName.vcxproj.filters.


ProjectName.vcxproj - każdy użytkownik musi go mieć, ale ten plik zawiera ścieżki bezwzględne do bibliotek z jakich korzysta projekt. Na przykład:

<AdditionalLibraryDirectories>
D:\SFML-2.4.2\lib;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>

Jeżeli któryś z członków zespołu trzyma bibliotekę w innym miejscu i wskaże ścieżkę do niej Visualowi, git będzie go informował o zmienionym pliku. Wzorcowa konfiguracja .gitignore z linku zaleca śledzić ten plik, ale wtedy pojawia się problem który opisałem wyżej. Jak to porządnie rozwiązać?


ProjectName.vcxproj.filters - tutaj przechowywane są - z tego co widzę - wszystkie pliki w projekcie. Plik zawiera na przykład taki fragment:

<ItemGroup>
  <ClCompile Include="stdafx.cpp">
    <Filter>Source Files</Filter>
  </ClCompile>
  <ClCompile Include="main.cpp">
    <Filter>Source Files</Filter>
  </ClCompile>
</ItemGroup>

Tu pojawia się taki problem, że gdybym śledził ten plik, to z każdym nowym plikiem *.cpp lub *.hpp w projekcie muszę do gita dołączyć nie tylko ten plik (np. NewClass.hpp), ale również zmodyfikowany plik ProjectName.vcxproj.filters. Czy to normalne w VisualStudio, czy coś robię źle?

1 odpowiedź

+2 głosów
odpowiedź 29 kwietnia 2018 przez adrian17 Ekspert (344,860 p.)
wybrane 29 kwietnia 2018 przez Piotr Batko
 
Najlepsza

Wzoruję się na konfiguracji z tej stronki: 

Powinno wystarczyć przekopiować plik, a nie wybierać pojedyncze pola.

Jeżeli któryś z członków zespołu trzyma bibliotekę w innym miejscu i wskaże ścieżkę do niej Visualowi, git będzie go informował o zmienionym pliku. 

AFAIK Często rozwiązuje się to przez użycie względnych ścieżek (względem roota projektu) (np `./external/`) - wtedy jest jedno uzgodnione miejsce gdzie wszyscy i build system wrzucają zależności. Możesz też użyć lokacji względem zmiennej środowiskowej - wtedy, nawet jeśli ktoś trzyma biblioteki we własnej lokalizacji, wystarczy że ustawi zmienną środowiskową na tą lokalizację.

Czy to normalne w VisualStudio, czy coś robię źle?

Ten plik powinien być w kontroli wersji - przechowuje część danych dotyczących struktury plików w projekcie. Patrz np ostatni komentarz tutaj: https://github.com/github/gitignore/pull/2236

komentarz 29 kwietnia 2018 przez Piotr Batko Stary wyjadacz (13,190 p.)
Nie chcę kopiować całości, bo dodałbym dużo niepotrzebnych rzeczy i .gitignore stałby się o wiele mniej czytelny (4 linijki vs 300+ linii, a robi to samo). Dziękuję za odpowiedź :)
komentarz 29 kwietnia 2018 przez adrian17 Ekspert (344,860 p.)
Robi to samo, dopóki przypadkiem nie dodasz tymczasowego pliku do repo ;)

Podobne pytania

0 głosów
1 odpowiedź 138 wizyt
pytanie zadane 2 sierpnia 2018 w Python przez KompKK Nowicjusz (200 p.)
0 głosów
1 odpowiedź 217 wizyt
pytanie zadane 12 stycznia 2020 w Inne języki przez Piotr Radziwon Początkujący (330 p.)
0 głosów
1 odpowiedź 385 wizyt
pytanie zadane 15 września 2018 w Inne języki przez Gucci Gaduła (4,580 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...