Aplikacja jest opracowywana przy użyciu Sencha Architect, który używa wielu plików pomocniczych do zarządzania różnymi obiektami związanymi z IDE (ścieżki eksportu, wersjonowanie IDE itp.).Jak zarządzać plikami IDE w repozytorium git?
Niektóre z tych plików zmieniają się za każdym razem, gdy członek zespołu po prostu otwiera projekt w IDE Sencha Architect.
Aby podać przykład szczególnie dokuczliwej zmiany, należy rozważyć właściwość exportPath
w wygenerowanych przez architekta plikach *.xds
. Będę miał wybrany serwer, do którego publikuję, do określonej ścieżki, a inni członkowie zespołu będą mieli różne konfiguracje serwera/ścieżki.
w naszym kodzie bazy, byłbym bardzo podobne albo mają pliki IDE:
- w oddzielnym repozytorium,
- w podmodułem (tak, git-specyficzny, wiem) lub
- znajdują się na komputerze użytkownika, z VCS niepomny na zmiany w nich.
Najważniejszą rzeczą, na którą należy zwrócić uwagę, jest to, że Sencha Architect oczekuje, że pliki znajdują się w określonych miejscach względem projektów, więc pliki IDE muszą być dostępne w tym samym miejscu co zwykłe pliki źródłowe.
Ponadto używanie opcji .gitignore nie jest opcją, ponieważ Sencha Architect będzie zapisywać informacje w niektórych z nich, które są istotne dla innych członków zespołu, którzy je prawidłowo otwierają. Na przykład. podczas otwierania projektu Sencha Architect może podjąć decyzję o uaktualnieniu projektu do nowszej wersji (jego nieobowiązkowe, jeśli w ogóle chce otworzyć projekt), a podczas aktualizacji IDE zmodyfikuje niektóre źródła pliki kodu. Pozostali członkowie zespołu muszą być świadomi aktualizacji wersji, aby móc poprawnie otworzyć projekt.
This SO question podaje pewne tło dla zawiłych formatów, z których korzysta Sencha. Przepraszam za negatywny ton w mojej ocenie architektury Sencha Architect, ale wygląda na to, że podjęli dobry pomysł (używając metadanych i generowania kodu) nieco zbyt daleko (unieważniając użycie wszystkich dobrych narzędzi unixowych, w tym git).
jakie byłoby preferowane podejście tutaj? I dlaczego?
To zależy od tego, jak ważne dla projektu są pliki. Na przykład w przypadku C# i ReSharper pliki .DotSettings są umieszczane w VCS, a pliki .user.DotSettings nie. Zadaj sobie pytanie: jeśli brakuje pliku, czy możliwe jest zbudowanie projektu? Czy będzie on poprawnie zbudowany? – Athari
@Athari: dzięki za komentarz, zaktualizowałem pytanie o więcej informacji związanych z tym – Steen
Obawiam się, że nie ma prostego rozwiązania, jeśli opcje na poziomie projektu i na poziomie użytkownika są mieszane w jednym pliku. Nie możesz zatwierdzić tylko niektórych części pliku i pozostawić inne ignorowane, AFAIK. Przesłałbym żądanie funkcji do Sencha, aby oddzielić opcje na różne pliki. W międzyczasie możesz zgodzić się z innymi programistami, aby zatwierdzili pliki IDE tylko wtedy, gdy wystąpią istotne zmiany i zajmą się łączeniem opcji. – Athari