• 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++)

VPS Starter Arubacloud
0 głosów
437 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,100 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,100 p.)
Robi to samo, dopóki przypadkiem nie dodasz tymczasowego pliku do repo ;)

Podobne pytania

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

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...