Temat: W jaki sposób korzystać z systemu kontroli wersji...

Mam taki problem ponieważ nie wiem w jaki sposób pracować z systemem kontroli wersji tworząc strony www
do tej pory nie korzystałem z tego jedynie robiłem backupy, ale chciałbym iść trochę do przodu.

Co nieco poczytałem na ten temat jednak nie znalazłem nigdzie informacji jak mogę to robić z poziomu FTP ( dodajmy zmieniam coś w notepad++ zapisuję zmianę na ftp ) i jak wtedy z automatu - jeśli mi coś działa móc commitować?

konto usunięte

Temat: W jaki sposób korzystać z systemu kontroli wersji...

System kontroli wersji służy do śledzenia zmian w kodzie. Zapisujesz "stan" swojego kodu na konkretny moment i dajesz mu krótki opis. I programujesz dalej. W momencie kiedy coś pójdzie nie tak, możesz wrócić do poprzedniego stanu. Możesz sprawdzić jakie pliki i jak zmieniłeś. Np jeżeli błąd pojawił się w konkretnym momencie (i wiesz kiedy) możesz sobie prześledzić zmiany w plikach.

Na początku pewnie będziesz korzystał z systemu kontroli wersji właśnie jak z backupa. Będziesz zapisywał kolejne "stany" i umieszczał na zewnętrznym serwerze (np na github, bitbucket albo coś własnego).

Warto jednak zainteresować się jak dzielić kod na gałęzie, jak go poprawnie wersjonować, jak tagować kolejne wersje itp. Warto brać przykład z projektów open source. Takie podejście rozwiązuje wiele problemów z którymi borykają się nawet te firmy które korzystają z systemu kontroli wersji. Dlatego że w wielu firmach mimo że korzysta się z takowych, nikt naprawdę nie potrafi tych narzędzi używać. Zwłaszcza spotykam się z tym zjawiskiem w agencjach interaktywnych i korporacjach.

Ja sugeruje zapoznanie się z tymi trzema tematami:
1. system kontroli wersji git
https://git-scm.com/book/pl/v1/

2. git flow, jedna z lepszych metod pracy z gitem
http://nvie.com/posts/a-successful-git-branching-model/
na linux jest nakładka dająca odpowiednie komendy skracające ilość rzeczy jakie trzeba zrobić:
http://danielkummer.github.io/git-flow-cheatsheet/

3. interaktywny git do zabawy i treningu
http://pcottle.github.io/learnGitBranching/
Maciej Filipiak

Maciej Filipiak właściciel, VizMedia

Temat: W jaki sposób korzystać z systemu kontroli wersji...

Tomek T.:
informacji jak mogę to robić z poziomu FTP ( dodajmy zmieniam coś w notepad++ zapisuję zmianę na ftp ) i jak wtedy z automatu - jeśli mi coś działa móc commitować?

Są jakieś nakładki na Gita, które wysyłają repo przez FTP. Ale to są jakieś egzotyczne wynalazki - zstanów się czy na pewno tego chcesz.

U mnie wygląda to tak, że pracuje sobie lokalnie na różnych branchach
- gdy już mam ostateczną wersję to wysyłam główny branch na serwer GIT
- wtedy strona aktualizuje się albo regularnie z crontaba albo po wydaniu polecenia - robi sobie update i synchronizje się z GIT'em.

Najbardziej lubię sytuację gdy wrzucam przetestowany branch na GIT i zapominam o sprawie - strona sama się zaktualizuje. Ale nie zawsze tak się da - czasem trzeba świadomie zainicjować aktualizację.

konto usunięte

Temat: W jaki sposób korzystać z systemu kontroli wersji...

Wg mnie najlepiej takie rzeczy robić po tagach. Podobnie jak działaja np composer, npm i inne wynalazki. Niezależnie co masz na gałęzi, na produkcję trafia po prostu ostatnio wersja (najlepiej po uprzednim przetestowaniu). Tylko trzeba się upewnić że cokolwiek wydłubie kod potrafi poprawnie odczytać numer wersji a nie zrobi tego alfabetycznie.

Inaczej może się trafić że 1.0.5 trafi przed 1.0.15 co nie jest dobre.Ten post został edytowany przez Autora dnia 09.06.15 o godzinie 10:15
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: W jaki sposób korzystać z systemu kontroli wersji...

Ja tylko nie rozumiem dlaczego się uparłeś na wrzucanie na ftp i potem z udziału na serwerze commit do repozytorium.

W dużym uproszczeniu zrobił bym tak:
1. Wykonaj sobie lokalnie na komputerze środowisko deweloperskie (Serwer www, baza danych i inne).
2. Stwórz projekt w dowolnym narzędziu do kontroli wersji i wrzuć tam wykonane przez siebie pliki projektu. Pliki w zależności od systemu kontroli wersji wrzucasz do głównej gałęzi (np trunk w SVN albo master w GIT). Te pliki to twoja wersja produkcyjna.
3. W systemie kontroli wersji stwórz sobie branch dla potrzeb deweloperskich (np o nazwie dev).
4. Na swoim komputerze (przygotowanym wg pkt 1) zrób sobie checkout branch'a dev do takiego katalogu żeby aplikacja działała lokalnym serwerze www. Wykonaj konfigurację (jeżeli aplikacja takową posiada) i oznacz pliki w systemie kontroli wersji tak aby nie zostały przypadkowo przesłane.

Teraz masz podstawę do robienia aktualizacji produkcji oraz miejsce na rozwój i testowanie. Jeżeli wprowadzasz zmianę w kodzie do zawsze robisz to na branch'u "dev". Jeżeli uważasz że twoje zmiany można przesłać na produkcję to synchronizujesz branch dev z głównym i już masz zmiany które można wrzucać na produkcję.

Teraz na twój serwer nie przerzucasz plików przez ftp. Tworzysz tam sobie także kopię roboczą z systemu kontroli wersji. Jak chcesz przesłać zmiany na serwer to na swoim kompie wykonujesz commit a na serwerze zdalnym na kopii roboczej wykonujesz update.

5. Robię kopię roboczą (checkout) na serwerze zdalnym w miejscu dotychczaowego projektu.

Identycznie możesz postąpić z serwerem zdalnym testowym jak i z produkcyjnym. Takie rozwiązanie daje Ci możliwość automatycznego aktualizowania wersji. Np możesz ustawić, że serwer testowy ma aktualizować sobie kod np co 15 min albo raz na godzinę (update kopii roboczej jako skrypt w crontab). Chcesz oddać coś do testów to robisz commit a za godzinkę przesyłasz info do testerów, że można potestować na serwerze testowym.

6. Automatyzacja aktualizacji kodu na serwerach (crontab).

Taki rozwiązanie jest o tyle fajne, że możesz oddać kawałek aplikacji na testówce do przeklikania a sam na swoim kompie dorabiasz kolejne funkcjonalności. Zaznaczam jeszcze raz, że ten model pracy w bardzo dużym uproszczeniu...

Następna dyskusja:

potrzebuje drobnej pomocy p...




Wyślij zaproszenie do