7

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:

  1. w oddzielnym repozytorium,
  2. w podmodułem (tak, git-specyficzny, wiem) lub
  3. 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?

+0

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

+0

@Athari: dzięki za komentarz, zaktualizowałem pytanie o więcej informacji związanych z tym – Steen

+0

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

Odpowiedz

6

Pliki IDE nie powinny być wersjonowane, chyba że masz niezły powód. Być może twój projekt buduje tylko za pomocą wtyczki w konkretnym IDE i musisz zmienić te ustawienia. Jeśli nie potrzebujesz tych plików do zbudowania lub uruchomienia projektu, prawdopodobnie nie powinieneś ich aktualizować.

Możesz użyć ignore those files używając Git. W szczególności pliki IDE są dobrymi kandydatami do globalnego gitignore, ponieważ każdy użytkownik będzie używał dowolnych IDE, a te ustawienia powinny być stosowane do wszystkich swoich repozytoriów.

+2

Całkowicie się z tobą zgadzam. Ten projekt ma już jednak wszystkie rodzaje plików IDE pod kontrolą wersji, członkowie zespołu polegają na plikach znajdujących się w VCS. Odrzucanie ich nie jest opcją, ponieważ Sencha Architect napisze niektóre z nich, które są istotne dla innych członków zespołu, którzy je prawidłowo otwierają. Dodam to do pytania. Dzięki. – Steen

0

Pomocne może być używanie wersji dla plików IDE z wyjątkiem plików przechowujących ustawienia użytkownika. Zobacz także https://intellij-support.jetbrains.com/entries/23393067.

Zalety korzystania z systemu kontroli wersji tych plików jest

  • Udostępnianie stylów kodu dla całego zespołu projektowego
  • zarządzać i współdzielić zagnieżdżone repozytoriów, które są pod kontrolą wersji.
  • itd.
+0

Twój link jest uszkodzony, bieżący działający link to https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-Jak-to-manage-projects-under-Version-Control-Systems – azhidkov