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

0 głosów
643 wizyt
pytanie zadane 29 kwietnia 2018 w Systemy operacyjne, programy przez Piotr Batko Stary wyjadacz (13,210 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 Mentor (354,880 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,210 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 Mentor (354,880 p.)
Robi to samo, dopóki przypadkiem nie dodasz tymczasowego pliku do repo ;)

Podobne pytania

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

93,721 zapytań

142,651 odpowiedzi

323,267 komentarzy

63,270 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...