2010-06-08 19 views
12

Jesteśmy firmą zajmującą się projektowaniem stron internetowych, przygotowującą system zarządzania poprawkami i wszystkimi procesami związanymi z tym, jak zamierzamy z niego korzystać itp. Rozważamy zastosowanie systemu zarządzania wersjami git .Używanie GIT z Joomla

Rozwijamy głównie nasze witryny internetowe pod systemem zarządzania treścią (CMS) o wartości Joomla!. Chciałbym wiedzieć, jak inne firmy zarządzają swoimi repozytoriami podczas pracy z CMS. Zajmujemy się głównie budowaniem szablonów, a czasami dostosowujemy komponenty lub wtyczki, które zainstalowaliśmy.

Moje główne pytania:

  • jest najlepszym sposobem na przechowywanie wszystkich plików (w tym plików Joomla) w repozytorium, czy tylko pliki, które można zrobić lub zmienić siebie?
  • Czy przechowujesz kopię bazy danych (której Joomla używa do przechowywania operacji i zawartości), aby uwzględnić zmiany w bazie danych?
+1

Może być łatwiej używać SVN tylko dlatego, że jest to SCM, którego używa Joomla. Wierzę, że istnieje sposób na dodanie opcji do repozytorium zagranicznego do własnych katalogów, więc zasadniczo repozytorium Joomla byłoby obce i pobierałoby aktualizacje, gdy Joomla aktualizowałaby swój kod źródłowy, a wtedy po prostu martwiłbyś się o własny kod.Jednak jest to oczywiście (zawsze) nieco bardziej skomplikowane, więc jestem pewien, że ktoś po mnie będzie mógł udzielić ci lepszych wskazówek. Powodzenia! –

Odpowiedz

4

Na pierwsze pytanie zwykle większość grup sprawdza wszystkie pliki związane z projektami (z wyjątkiem dzienników i plików tymczasowych). Jeśli chcesz przechowywać bazę danych, przechowuj zrzut bazy danych (a nie pliki binarne). Powinieneś upewnić się, że zawiera zarówno dane, jak i schemat.

1

Jesteśmy w podobnej sytuacji - agencja projektowa z witrynami Joomla.

Używamy Subversion, z każdą witryną jako repozytorium. Kiedy rozpoczynamy projekt, pobieramy najnowszą wersję Joomla i umieszczamy ją w SVN. Następnie przeglądamy witrynę z SVN na maszynie lokalnej i pracujemy nad nią, sprawdzając w razie potrzeby.

5

Ten artykuł Joe LeBlanc to jedna z niewielu rzeczy, znalazłem dotyczące kontroli wersji Joomla !: http://joomlaablog.blogspot.it/2010/11/how-to-track-your-joomla-project-with.html

Istnieją dwa ogólne strategie można zatrudnić za korzystanie Git z Joomla: albo śledzić cała instalacja Joomla lub śledzenie określonego rozszerzenia . Głównym czynnikiem odstraszającym od śledzenia samej Joomla z Git jest sam rozmiar bazy kodu Joomla. Chociaż Git jest dość szybki, nadal może być przesadą, aby śledzić całą instalację Joomla , jeśli dodajesz pojedynczy szablon lub moduł.

Z drugiej strony, umieszczenie wszystkiego w Git umożliwia ustalenie, kiedy poprawki zostały zastosowane na stronie Joomla. Może to być pomocne przy próbie prześledzenia problemu do określonej poprawki. Ponadto, jeśli tworzysz wiele rozszerzeń, które są zaprojektowane jako do współpracy, możesz nie mieć innego wyboru niż umieszczenie całej witryny pod kontrolą wersji .

Jeśli pracujesz na jednym rozszerzeniu i wiesz, że jest to jedyny model , który będzie częścią projektu, może być bardziej korzystne śledzenie pojedynczego katalogu w postaci . Pojedynczy komponent tylko dla frontendu, komponent lub moduł tylko z wersji backendowej są kandydatami do śledzenia niezależnie od instalacji Joomla. W ten sposób trudno jest śledzić wtyczki , ponieważ pliki wtyczki .php są umieszczane obok siebie w folderach udostępnionych.Śledzenie w ten sposób kompletnych komponentów jest również problematyczne, ponieważ zmiany w zapleczu mogą wpływać na zachowanie w interfejsie użytkownika.

2

Jeśli zdecydujesz się na pierwszą opcję (śledzić całą joomlę), musisz .gitignore cały rdzeń i za każdym razem, gdy zostanie dodane zewnętrzne rozszerzenie. W przeciwnym razie jest koszmar, gdy ktoś instaluje rozszerzenie i zatwierdza je. Musisz to odkryć po pociągnięciu, a czasem nie działa. Również zmiany w wersji Joomla są trudne do zarządzania.

Jestem zwolennikiem różnych repozytoriów dla różnych rozszerzeń, ale wciąż szukam sposobu na jedno repo na cały komponent (admin + front + install). Każdy pomysł (być może submodules lub subtree merging)?

9

Wiem, że to pytanie ma już zaakceptowaną odpowiedź, ale może ktoś wróci do tego i uzna to za przydatne.

  • myślę śledzenia całą Joomla i starają się wykluczać podstawowych plików jest prawie niemożliwe, a jako @vicgilbcn twierdzi, że może stać się koszmarem.
  • Z drugiej strony, jeśli tworzysz komponent dla J! które "niestety" jest ukryte w "components/com_mycomp", "administrator/components/com_mycomp" i prawdopodobnie "media/com_mycomp" powinieneś mieć 3 oddzielne repliki git do śledzenia - więc to też nie jest opłacalne.

Więc wymyśliłem i wydaje mi się, że działa całkiem dobrze, jest to: Załóżmy, że mam normalne J! deloyment z komponentem com_mycomp w środku.

  • Tworzę folder poza bazą kodów joomla i nazywam go "COMMON".
  • w „wspólne” tworzę „joomla” Folder
  • w „wspólne/joomla” tworzę „Mycomp” folder, który będzie trzymać całą CODEBASE mojego składnika
  • w „wspólne/Joomla/Mycomp” Używam struktura folderów Joomla i I MOVE (bez kopii) "components/com_mycomp", "administrator/components/com_mycomp" i "media/com_mycomp" w środku.
  • Następnie wracam do miejsca, z którego usunąłem foldery i utworzyłem dowiązań symbolicznych do nowych lokalizacji.

W ten sposób można teraz utworzyć repozytorium git w COMMON/joomla/myComp.

Oczywiście środowisko to powinno być lokalnym środowiskiem programistycznym, w którym można dostosować konfigurację apache/php, bez wpływu na bezpieczeństwo, aby to działało. (Nie pamiętam, czy naprawdę musiałem wykonać specjalne modyfikacje konfiguracji, aby działało - jeśli nie sprawdza dzienników ...)

W rzeczywistości to rozwiązanie rozwiązuje inny problem. Działając w ten sposób, można w rzeczywistości dowiązać symbolicznie foldery kodu źródłowego komponentu do dwóch różnych wdrożeń Joomla (na przykład J! 2.5.x i J3.x.x) i być w stanie opracować/sprawdzić kompatybilność komponentów w sposób bezpośredni w stosunku do różnych wersji.

+0

dobra odpowiedź! 'in" COMMON/joomla/myComp "Używam struktury folderów Joomla" przez to rozumiałeś pełną strukturę Joomla lub tylko te trzy foldery: komponent, administrator i media? Dzięki –