Rozpoczęcie pracy z Subversion, Git lub podobnym systemem kontroli wersji do przechowywania historii moich plików? [Zamknięte]


31

Zdaję sobie sprawę, że może to być ogólne pytanie, ale szukam konkretnych przykładów konfiguracji / przepływów pracy, których ludzie używają do przechowywania historii wersji edytowanych plików w witrynie WordPress. Na przykład podczas tworzenia witryny (a nawet po jej uruchomieniu) często dokonuję zmian w plikach CSS i PHP, ale nie mam świetnego sposobu na powrót do starszych wersji tych plików. Dla moich celów wprowadzanie zmian w lokalnej instalacji programistycznej, a następnie kopiowanie tych zmian do działającej witryny jest często większym problemem niż bym chciał. Wszelkie sugestie dotyczące rozpoczęcia korzystania z narzędzia do kontroli wersji w celu śledzenia edycji plików w aktywnej witrynie?


1
Ciekawe, Mike - dlaczego tytuł się edytuje? Moim zdaniem tytuły pytań powinny być zgodne z zasadami właściwej gramatyki. Może to dobra dyskusja dla meta ...
Travis Northcutt,

Jesteś już częścią dyskusji na temat meta, tnorthcutt. :)
Annika Backstrom

Odpowiedzi:


14

Nie jestem pewien, ile wiesz o korzystaniu z kontroli wersji, ale ostatnio przeszedłem z SVN na Git i uważam, że to świetnie!

Chociaż to zależy od tego, czy serwer witryny ma zainstalowany Git (lub pozwoli ci). Mam również konfigurację Git na serwerze na żywo, działającą z gałęzi o nazwie coś takiego production. Ilekroć kończę wdrażanie / naprawianie czegoś lokalnie, łączę to z productiongałęzią, a następnie SSH z serwerem działającej witryny i wprowadzam zmiany. Przeciąganie przeciągania plików przez FTP, gdy nigdy nie wiadomo, czy zastępujesz zmiany itp.

Polecam poświęcić trochę czasu na zapoznanie się z Git (jeśli jeszcze tego nie zrobiłeś), uważam, że jest to o wiele łatwiejsze i mniej kłopotliwe niż SVN, jeśli chodzi o zmianę / dodawanie mnóstwa plików (i w przeciwieństwie do SVN nie jest głupie .svnfoldery wszędzie ).

Jestem na komputerze Mac, więc przepraszam, jeśli żadne z nich nie ma zastosowania, ale używam Cody jako edytora kodu i zainstalowałem Git przez porty (używając Porticus).

Gdybym miał wszystko skonfigurować od nowa, zrobiłbym:

  1. Zainstaluj Codę

  2. Zainstaluj Porticus (który będzie wymagał instalacji portów, ale na tej stronie znajdują się informacje)

  3. Po zainstalowaniu Porticus otwórz go, wyszukaj „git-core” i zainstaluj.

  4. Pobierz i zainstaluj GitX 7-5

  5. Jest dobrym przewodnikiem na utworzenie git repo tutaj , ale jest to podstawowy: 1. Otwórz Terminal. 2. cddo miejsca, w którym ma znajdować się witryna. $: mkdir mysite && cd mysite3. $: git initi to wszystko! Jeśli dodasz pliki do tego folderu, przejdź do następnego kroku

  6. Po skonfigurowaniu lokalnie repozytorium GIT (powyżej artykułu), jeśli otworzysz ten katalog w GitX, będziesz mógł zatwierdzać różne rzeczy itp.

Konfiguracja tego wszystkiego na serwerze może być trochę trudna, mam konto MediaTemple i Dreamhost, które mają GIT od razu po wyjęciu z pudełka. Link w kroku 5 pokazuje, jak dodać zdalne repozytorium, więc nie musisz tego robić, dopóki nie chcesz wprowadzić swojej działającej witryny do równania. Poleciłbym najpierw, aby wszystko działało lokalnie (w przeciwieństwie do SVN, GIT nie wymaga zdalnego repozytorium, więc na razie możesz zrobić wszystko na swoim komputerze).


Czy mógłbyś bardziej szczegółowo opisać swój przepływ pracy, jakich narzędzi / edytorów używasz, w jaki sposób konfigurujesz GIT na swoim serwerze na żywo itp.? Mam nadzieję na dobry krok po kroku, jak uzyskać konfigurację z czymś takim jak GIT.
Travis Northcutt,

Dodałem kilka kroków, aby zacząć, powodzenia!
Joe Hoyle,

Czy masz też dobry samouczek, który polecasz dla GIT? Korzystam z Subversion i od wieków chcę się przełączać z powodu tego, jak kruche może być Subversion (a także z powodu tych cholernych folderów .svn! :)
MikeSchinkel

Joe, dziękuję za dodanie szczegółów. Jestem na komputerze, ale mogę poszukać równoważnych narzędzi, które powinny być przydatne dla innych użytkowników komputerów Mac.
Travis Northcutt,

Mogę tylko polecić git. Po prostu się kołysze. Niezależnie od systemu operacyjnego. Używam go często na systemie Linux i Windows (że tak powiem: teraz każdego dnia). w systemie Windows jest git bash.
Świetną

8

Używam SVN do kontroli wersji we wszystkim, co robię w rozwoju WordPress. Właściwie zacząłem w ten sposób, ponieważ potrzebowałem SVN do programowania wtyczek ... kiedy tam zacząłem, było naturalnym rozszerzeniem, aby nadal używać SVN do motywów i niestandardowych skryptów w witrynach klientów.

Wtyczki

Ponieważ wtyczki są już hostowane na serwerze WordPress, po prostu sprawdzam wtyczkę bezpośrednio do /wp-content/plugins/katalogu mojej lokalnej instalacji WordPress (uruchamiam WAMP na moim oknie programistycznym). Następnie wprowadzam zmiany w mojej lokalnej kopii i, gdy jest ona gotowa na pokaz, zatwierdzam w repozytorium. Jest to płynny proces, bez przesyłania / pobierania i natychmiastowa weryfikacja działania moich zmian.

Tematy

Tematy są nieco inne, szczególnie w przypadku budowania dla klienta. Tworzę lokalne repozytorium (mam Rpartycję na twardym dysku specjalnie do tego celu) i sprawdzam puste repozytorium bezpośrednio w moim /wp-content/themeskatalogu. Następnie wprowadzam zmiany w razie potrzeby i rozwijam się, aż będą gotowe, dokonując zmian w miarę upływu czasu.

Kiedy jestem gotowy opublikować kompozycję na serwerze produkcyjnym klienta, eksportuję repozytorium, spakuję go i używam natywnych motywów >> Dodaj nową funkcjonalność w WordPress. Działa to również z niestandardowymi wtyczkami (które nie są obsługiwane przez WordPress).

Przybory

Tak jak powiedziałem, używam WAMP na moim komputerze lokalnym, aby uruchomić instalację programistyczną WordPress. Działa idealnie na moim urządzeniu i pozwala mi uruchomić tyle instancji WordPressa, ile potrzebuję do konkretnego projektu.

W przypadku SVN używam Tortoise SVN . Jest bezpłatny, niezwykle łatwy w użyciu i integruje się ze strukturą plików i poleceń systemu Windows. Aktualizowanie, zatwierdzanie i eksportowanie to proste kliknięcie prawym przyciskiem myszy i wybranie operacji poleceń. Korzystanie z „Eksportuj” pozwala wysłać cały folder (bez irytujących .svnfolderów) bezpośrednio do dowolnej wybranej lokalizacji - często eksportuję na pulpit. Spakowanie folderu jest również operacją kliknięcia prawym przyciskiem myszy, a WordPress obsługuje przesyłanie.

Ręczne przesyłanie plików może być kłopotliwe, szczególnie jeśli ciągle zmieniasz jeden plik, ale nie wszystkie. Jeśli zamiast tego przesyłasz FTP przez cały katalog z zaznaczoną opcją „nadpisz wszystko”, znacznie łatwiej jest zastąpić stare pliki (i nie musisz śledzić, które zmieniono, a które nie). To jak stara 5-minutowa instalacja WordPressa - wystarczy zastąpić wszystko nową wersją.


3

Osobiście uważam, że instalowanie SVN / GIT i zarządzanie nim jest zabawnym ćwiczeniem, ale jeśli możesz zarobić 15 USD miesięcznie, Beanstalk jest wart każdego grosza. Zarządzają dla Ciebie całym serwerem. http://beanstalkapp.com/ Narzędzia do wdrażania FTP są niesamowite. Moja automatycznie wdraża wersję na moim serwerze pomostowym, gdy np. Zatwierdzam

Innym sposobem na uzyskanie wersji osobistej jest użycie pola rozwijanego. Za każdym razem, gdy zapisujesz plik w swojej skrzynce, śledzi wersję i możesz przywrócić ją do dowolnej poprzedniej wersji później. Ty i inny programista lub grupa możecie udostępnić folder skrzynki. To prawda, że ​​nie robi to trunków, fuzji itp., Ale bardzo ułatwia rozproszonemu zespołowi pracę na jednej stronie internetowej. Po prostu nie możesz jednocześnie pracować nad dokładnie tymi samymi plikami.

Trzymamy naszą kopię roboczą SVN w Dropbox, a następnie zatwierdzam pliki, gdy nadejdzie czas zapisu. Moi projektanci nie będą zatwierdzać plików ani zajmować się SVN, więc to jest kompromis.

Wolę SVN, ponieważ nie potrzebuję całego trunkingu, dla którego GIT jest tak świetny i są dostępne lepsze narzędzia GUI SVN.


2

Bardzo podoba mi się Aptana , ma wbudowaną subversion i możesz łatwo połączyć się z serwerem za pomocą ftp / sftp i wypychać pliki, kolejną wspaniałą cechą jest to, że jeśli tworzysz nowy projekt php i zawierasz „cały” WordPress folder (z wp-admin, wp-obejmuje) otrzymasz uzupełnienie kodu w plikach motywu.

W moim ustawieniu repo jest lokalne.


Co to jest „repo”?
Travis Northcutt,

2
„repo” to skrót od „repozytorium”.
Trevor Bramble,

„repo” = „repozytorium”
MikeSchinkel,

Używam również git ( np. wtyczki ) w Aptana (pod Win i Linuxem), działa dobrze i łatwo.
bueltge

1

Pytasz o „ale szukam konkretnych przykładów konfiguracji / przepływów pracy, których ludzie używają do przechowywania historii wersji edytowanych plików na stronie WordPress”, ale wspominasz także o produktach :)

Dostajesz się wyżej jako odpowiedź na listę narzędzi i kilka najlepszych praktyk, ale skupię się tutaj na przepływach pracy: NIE SĄ one SZCZEGÓLNE:

Ale w przypadku ogólnych przykładów / konfiguracji / przepływów pracy:

Na początek: istnieją wzorce CM, więc niezależne od narzędzi. Google na CM Patterns, wiele książek, nawet społeczności wiki, np . Http://www.cmcrossroads.com/forums .

Istnieją również przewodniki na temat konfigurowania prawidłowej strategii transmisji strumieniowej (strategia transmisji strumieniowej Google) itp.

Nie sądzę, żeby było coś specjalnego we wdrożeniach WordPressa w porównaniu do CM Management, w tym rozproszone tworzenie równoległe w dużych fabrykach Siebel, SAP, Informatica, Java itp. To naprawdę prawie domyślne.

Myślę, że brakuje tego, że nikt nie napisał CMplanu dla rozwoju WordPress (jeszcze) (IEEE). Gdy ktoś to zrobi (narzędzie niezależne). Myślę, że wymagania można wypełnić dowolnym narzędziem.

Myślę, że powodem, dla którego nie napisano planu, jest to, że prawie wszystkie implementacje WordPress są nadal wykonywane przez 1 osobę z prostą konfiguracją programistyczno-produkcyjną, więc nie wielu programistów / projektantów w fazie kompilacji musi wdrażać różne wersje uruchomione w na przykład środowisko testowe.

plan CMP zaczyna się od zidentyfikowania wszystkich elementów CI innymi słowy: utwórz listę wszystkich typów elementów CI obecnych w implementacji WordPress, w tym aplikacji, wtyczek, bazy danych, dokumentacji, pomocy, treści, plików konfiguracyjnych, informacji o wydaniu (!) itp. ..). To dobry początek. Następnie zdecyduj, które chcesz wziąć pod CM.

Następnie zdecyduj, co powoduje zmiany w tych elementach CI, np. Wezwanie klienta do naprawy błędu lub wymaganej aktualizacji. Jeśli zrobione dobrze, prowadzi to do sytuacji, w której masz poczucie, że wszystko jest pod kontrolą.

Decyzje takie jak powrót z produkcji do rozwoju i sposób radzenia sobie z tym, jest częścią tego rozdziału (tutaj 2 główne wzorce) (choć oczywiście powinieneś spróbować zminimalizować te poprawki).

Dopiero później poszukaj narzędzia do wykonywania CM z jednej strony (która obejmuje zarządzanie wersjami jako jedno z narzędzi) i narzędzi do zarządzania zmianami z drugiej strony (co pozwala zachować rozsądek).

Myślę, że to najlepszy przepływ pracy na początek, ponieważ, o ile googlowałem, nikt jeszcze nie zrobił. Myślę, że jak tylko pierwsza osoba przygotuje Plan WordPress CM (według IEEE), każda inna osoba WordPress na świecie może skopiować ten plan i wprowadzić poprawki oraz wdrożyć wzorce w swoich narzędziach.

Czy to nie jest za dużo pracy / za ciężkie: zależy od tego, czy masz firmę, czy nie: może pewnego dnia zaoszczędzić dużo czasu na dobrym planie CM.


0

Jestem na wspólnym hoście, więc nie mogę zainstalować SVN ani nic podobnego. Używam Mercurial do kontroli wersji na moim komputerze domowym. Korzystam z synchronizacji FTP Beyond Compare, aby synchronizować foldery lokalne i zdalne.


0

używam git. To proste. nie musisz rozumieć prostych poleceń, takich jak klonowanie, zatwierdzanie, pchanie, ciągnięcie i jesteś gotowy do pracy. to jest podstawowe.

chociaż jeśli używasz git bardziej, np. koordynujesz zespół do pracy nad produktami, to jest to kolejny poziom. ale ostatecznie warto było użyć git lub dowolnej kontroli wersji. są niezawodne, gdy dzieje się gówno.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.