IceManSpy
27.12.2010, 20:28:41
Witam
Chciałbym poruszyć może ciekawą dyskusję na w/w temat. Skąd taka myśl? Otóż pojawiła się w trakcie próby rozpoczęcia zabawy z Zendem (link:
Temat: ZFInstalacja Zend FrameWork na pendrive).
Chciałbym się dowiedzieć czy pracujecie na 2 komputerach, np stacjonarce i lapku czy tylko na jednym?
W jaki sposób rozwiązujecie problem z plikami jak pracujecie na 2 maszynach? W odpowiedzi na pliki dostałem o możliwości używania systemu kontroli wersji, ale co z bazą danych? Aktualnie pracuję na pendrive, więc takiego problemu nie mam.
Oraz jak pracować, gdy jest się off-line (brak dostępu do internetu)?
Smertius
27.12.2010, 20:49:22
Ja korzystam z zewnętrznego HDD na którym mam zainstalowaną maszynę wirtualną(Debian) która robi u mnie za serwer. Wg mnie bardzo wygodne z tym że trzeba mieć w miarę wydajnego kompa.
Poczytaj o GITie. Stworzony do pracy offline.
Co tyczy się bazy danych do tej pory wystarczały mi migracje + dumpy SQL + skrypty SQL, ale wiem, że istnieją rozwiązania dedykowane... polecam przejrzeć grupę PHP na Goldenline - tam było to wałkowane.
Git załatwia sprawę na wszystkich frontach, jeśli chodzi o kod. Co do bazy nie masz się czym przejmować, jeśli projekt jest zrobiony porządnie. Struktura bazy jest opisana np. w SQL-u albo jakiejś konfiguracji ORM-a na Gicie i na każdym kompie ją osobno generujesz. Nie ma co jej współdzielić, bo i tak podczas trwania projektu jest ona z 500 razy resetowana i budowana od zera.
Trochę gorzej jest z plikami takimi, jak rozmaite dokumenty, dokumentacje, schematy itd. Tu już dużo zależy od naszego trybu pracy. Jeśli stosunkowo rzadko przenosimy robotę z jednego komputera na drugi, wystarczy nam porządek na dysku i zwykłe SSH do kopiowania plików. Przy częstszych przenosinach warto zaopatrzyć się w jakiś program do synchronizacji danych między dyskami, np. Unison.
batman
27.12.2010, 21:26:02
Ja od dłuższego czasu korzystam z unfuddle. Ma w sobie wszystko czego potrzebuję - svn, track, wiki, notatki. Do grubszych rzeczy mam Windows Live Mesh. Oprócz tak banalnej funkcjonalności jak synchronizacja danych między komputerami (oraz chmurą), daje możliwość korzystania ze zdalnego pulpitu bez obawy o firewalle, nat, itp. Ponieważ jestem szczęśliwym posiadaczem Office 2010 dokumenty synchronizuję przy pomocy Office Web Apps.
Najtrudniej jest z bazą danych. Jeśli korzystam z MySQL, to zazwyczaj synchronizuję schemat zapisany w MySQL Workbench. W przypadku pozostałych baz robię dumpa schematu i danych (osobno) i je synchronizuję.
Naprawdę prywatne dokumenty/pliki/projekty/itd nigdy nie mają styczności z żadnym online'owym mechanizmem przechowywania danych. Takie informacje przenoszę zawszę na wymiennych nośnikach.
IceManSpy
27.12.2010, 21:27:20
Cytat(Zyx @ 27.12.2010, 21:12:40 )

...
Trochę gorzej jest z plikami takimi, jak rozmaite dokumenty, dokumentacje, schematy itd. Tu już dużo zależy od naszego trybu pracy. Jeśli stosunkowo rzadko przenosimy robotę z jednego komputera na drugi, wystarczy nam porządek na dysku i zwykłe SSH do kopiowania plików. Przy częstszych przenosinach warto zaopatrzyć się w jakiś program do synchronizacji danych między dyskami, np. Unison.
Z plikami tzn masz na myśli obrazki np layout?
Nie, mam na myśli np. diagramy UML-owe, jakiś opis wymagań czy szkic tego, co trzeba zrobić - najczęściej są to rzeczy, które ja przygotowuję dla innych ludzi; oni to mają on-line, ale ja muszę mieć na kompie wersje źródłowe, by móc to edytować

.
IceManSpy
27.12.2010, 23:02:25
A robiąc taki mały offtopic, gdzie mogę znaleźć jakiś darmowy serwer dla GIT? I jakiś link z tutkami, w którym jest wyjaśnione co i jak, krok po kroku. To będzie moja pierwsza styczność z systemem kontroli wersji
wookieb
27.12.2010, 23:08:59
Github. Ale centralny serwer nie jest wymagany, jeżeli oboje macie globalne IP.
Google -> git tutorial
IceManSpy
27.12.2010, 23:15:07
Tzn ja będę sam, tylko mam 2 komputery. W przyszłości może będzie kilka osób... Poza tym chciałbym serwer, na którym będę mógł umieszczać prywatne projekty - bez niczyjego wglądu.
Lub co znaczy, ze nie musi być scentralizowanego serwera? Tzn jak i gdzie to jest przechowywane?
A co do GITu to lepiej używać konsoli czy np TortoiseGit ? Osobiście wolę graficzne rzeczy.
W Gicie każda kopia robocza jest jednocześnie pełnoprawnym, samodzielnym repozytorium. Przy pracy grupowej uczestnicy wymieniają się po prostu zawartościami repozytoriów i sposób prowadzenia takiej wymiany jest całkowicie obojętny. Można za pomocą tego mechanizmu zasymulować SVN, tj. centralne repozytorium dla wszystkich, a można też opracować dowolne inne przepływy.
Co do drugiego pytania... konsola Gita jest moim zdaniem znakomicie i czytelnie zrobiona. Ja pracuję za jej pomocą i uważam, że jak mają mi wciskać GUI o poziomie reprezentowanym przez to, co jest w NetBeans czy Eclipse, to nie ma to sensu.
athabus
29.12.2010, 13:41:03
Pamiętam swoje pierwsze zetknięcie z git'em - przez brak centralizacji trochę trudno było się przestawić z svn. Ale ogólnie po przyzwyczajeniu doceniam zalety git'a. Jest to idealne rozwiązanie dla Ciebie IceManSpy. Stosuję gita przy jednym projekcie w dokładnie taki sposób jak to opisujesz i sprawdza się znakomicie.
Co do pracy to imho konsola wymiata. W SVN nie mogłem się do niej przekonać - komendy długie i mało czytelne. W git wygląda to zupełnie inaczej - konsola jest strasznie intuicyjna i wszystko daje się w niej łatwo zrobić. Używam Gui tylko, gdy chcę przejrzeć historię zmian etc. W takim przypadku dobre gui sprawdza się zdecydowanie lepiej niż praca w konsoli. Natomiast wszystkie czynności typu "komitowanie", tworzenie/łączenie gałęzi etc w konsoli wywołuje się najszybciej i najłatwiej.
//edit
Co do serwera to z darmowym będzie raczej problem jeśli nie jest to jakiś OS projekt. Pomyśl może lepiej nad pendrivem i na nim trzymaj repozytorium wymiany - nigdy tego nie próbowałem, ale powinno dać radę bez problemu. Jeśli natomiast oba komputery pracują równocześnie to jeszcze lepszym wyjściem będzie synchronizacja przez ssh.
Petre
12.05.2012, 17:56:38
Witajcie,
podpinam się pod stary temat.
Wczoraj odpaliłem GIT na unfuddle.com .
Chciałem zsynchronizować moje kompy.
Utworzyłem projekt na PC. Scommitowałem go i dałem PUSH na serwer unfu.
Następnie dałem CLONE na lapie. Projekt się pojawił jest ok.
Teraz pytanie.. dla testu wyedytowałem plik na PC, scommitowąłem dałem PUSHa. Wyedytowałem ten sam plik na lapie i podobnie, commit i push. Tutaj następuje zonk. Nie zatwierdziło mi pusha z laptopa ponieważ wykryło, ze w miejscu, gdzie jest kod pojawił się plik z inną treścią.
W takim razie spróbowałem zrobić PULL na laptopa wówczas wywaliło mi konflikt owego pliku z wersja pobraną.
Jak rozwiązać problem ?
Chciałbym zrobić to na zasadzie zmergowania pliku z laptopa z tym pobranym z repo unf (PUSHowanego z PC).
Jak do tego podejść ?
GIT obsługuje z Netbeansa.
Pozdrawiam
athabus
12.05.2012, 20:30:05
Jeśli dobrze rozumiem Twój problem, to musisz usunąć konflikt (w pliku z konfliktem masz markery konfliktu) potem zrobić lokalny commit zmienionego pliku i push na serwer.
Petre
13.05.2012, 09:03:53
tak jest wyswietlany diff i ktora wersje wybieram.
Co ciekawe daje accept jedną (np ta z laptopa) , ale tym samym jak rozumiem trace wersje napisana na PC. W jaki sposob mozna to zmergowac? czy mam uzyc normalnego ctrl c ctrl v ?
Czy jest jakas komenda spod consoli ?
Netbeans mam wrazenie ze nie radzi sobie z tym poniewaz klikam ten accept i probuje dac commita to i tak wywala mi ze jest konlikt. I tak w kolo Macieju.l
athabus
13.05.2012, 10:02:02
Po prostu otwórz plik z konfliktem w edytorze - w tym pliku masz zaznaczone "sporne" fragmenty markerami.
Masz coś takiego:
Kod
Część zgodna w obu plikach
<<<<<<< HEAD:file.txt
Zmiany z jednego pliku
=======
Zmiany z drugiego pliku
>>>>>>>
Dalsza część zgodna w obu plikach
Wystarczy w tym pliku pousuwać markery (czyli te <<<< >>> ===) itd. Łącząc zmiany z obu plików tak jak tego oczekujesz (w końcu git nie wie jak ten plik ma wyglądać finalnie). Po usunięciu konfliktu robisz po prostu zwykły commit zmian.
//btw co do NB to nie wiem - ja z gitem pracuje głównie w konsoli, bo do podstawowych zadań jest szybciej i przyjemniej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.