Temat: SVN kilka pytań na początek

Witam, postawiłem serwer svn dla niewielkiej ilości programistów. Problem w tym, że nie wiemy jak się zabrać za jego obsługę (teoria typu commity, merge, tagi, trunk, brache itp. opanowana). Mianowicie, musimy rozwijać witrynę która znajduje się w folderze /var/www.
1) Tu pojawia się pierwsze pytanie czy katalog SVN powinien być w lokalizacji typu /var/svn czy właśnie w /var/www (serwer jest produkcyjny) ? Jeśli nie www to rozumiem, że trzeba skonfigurować skrypt kopiujący przez svn ?
2) Kolejny problem, wiemy, że nasza witryna będzie korzystała z różnych plików spoza /var/www np. /etc czy /var/log lub /var/tmp, jak to należy przełożyć na repozytorium?
3) Powinniśmy pracować na kopii repozytorium lokalnie, więc każdy musi zainstalować sobie we własnym zakresie serwer www ? Czy można wyniki przeglądać po przez główny serwer ?

dzięki, pozdrawiam
Piotr Obidowski

Piotr Obidowski Web Team Leader

Temat: SVN kilka pytań na początek

Jeżeli każdy z programistów ma mieć lokalne repozytorium to może lepiej zastanowić się nad GIT. To jest główna różnica między GIT i SVN, że ten pierwszy posiada lokalne repozytorium, a potem robi się PUSH Request na zdalny serwer.

Natomiast jeżeli chodzi o problem z tym, że różne pliki są porozmieszczane w różnych miejscach to może lepiej zastanowić się czy taka architektura jest poprawna, ponieważ może nie być łatwo osiągnąć coś takiego.Piotr Obidowski edytował(a) ten post dnia 03.05.13 o godzinie 17:10
Piotr Lewandowski

Piotr Lewandowski Programista
aplikacji
internetowych (PHP,
MySQL, SF2, Mag...

Temat: SVN kilka pytań na początek

Dominik Z.:
Witam, postawiłem serwer svn dla niewielkiej ilości programistów. Problem w tym, że nie wiemy jak się zabrać za jego obsługę (teoria typu commity, merge, tagi, trunk, brache itp. opanowana). Mianowicie, musimy rozwijać witrynę która znajduje się w folderze /var/www.
1) Tu pojawia się pierwsze pytanie czy katalog SVN powinien być w lokalizacji typu /var/svn czy właśnie w /var/www (serwer jest produkcyjny) ? Jeśli nie www to rozumiem, że trzeba

Definytywnie repozytorium projektu powinno być poza katalogiem z aplikacją produkcyjną. Raczej tu się należy zastanowić w jaki sposób będzie aktualizowana aplikacja produkcyjna. Może to być kopia robocza branchu produkcyjnego, może być to też export i transfer plików

skonfigurować skrypt kopiujący przez svn ?
2) Kolejny problem, wiemy, że nasza witryna będzie korzystała z różnych plików spoza /var/www np. /etc czy /var/log lub /var/tmp, jak to należy przełożyć na repozytorium?

A dlaczego te katalogi miałyby być w repozytorium? /var/tmp, /var/log? Podejrzewam, że to będą pliki specyficzne dla danej instancji aplikacji a nie aplikacji samej w sobie, więc nawet nie powinny być. Jeśli chodzi o etc to zależy co tam będzie, jeśli konfiguracje, to powinny być tam np. szablony defaultowej konfiguracji, ale nie konfiguracje same w sobie, bo istnieje prawdopodobieństwo, że będą różne pomiędzy różnymi środowiskami (produkcyjnym, developerskimi, etc...)
3) Powinniśmy pracować na kopii repozytorium lokalnie, więc każdy musi zainstalować sobie we własnym zakresie serwer www ? Czy można wyniki przeglądać po przez główny serwer ?

SVN to zcentralizowany system kontroli wersji więc oczywiście każdy ma kopie roboczą u siebie ale w momencie zatwierdzenia (commit) zmian potrzeba aby osoba "commitująca" była online aby mogła wysłać zmiany na serwer gdzie znajduje się repozytorium. Jeśli jednak to nie jest efektywne rozwiązanie, to proponuje jak kolega niżej zastanowić się nad GIT.

Musisz też brać pod uwagę to, że nie ma jednego złotego środka na zorganizowanie repozytorium. Wszystko zależy od projektu, specyfiki i architektury danej aplikacji, procesu samego developmentu, testów, deploy na produkcje itd.
Radziłbym pomyśleć nad tym nawet jeszcze przed wyborem narzędzi do kontroli wersji. Zastanowić się nad potrzebami, przeanalizować różne sytuacje, a potem postarać się dopasować konkretne rozwiązanie, tak aby było ono na pewno ułatwieniem i usprawnieniem, a nie utrudnieniem :-)

Temat: SVN kilka pytań na początek

Git ma jedną wadę, nie za dobrze radzi sobie z windowsem (pomijając już wygląd GUI), wolałbym pracować na Mercurial. Tyle, że dla niewielkiej liczby programistów to raczej nie ma sensu, lepiej to scentralizować - by mieć kontrole.

Wracając do svn ...hmm to powiedzmy, że mam repozytorium w /var/svn, zgodnie z dokumentacją uruchamiam skrypcik do kopiowania plików z repozytorium do /var/www.
Jeśli projekt wymaga jakiś plików spoza głównego folderu aplikacji to w tedy powinienem stworzyć repozytorium, którego korzeń będzie obejmował wszystkie wymagane pliki, tak? Np. dla plików z /var/www i /etc powinienem mieć repozytorium z "/" i wykluczyć niepotrzebne pliki (nie dodawać ich, a uwzględnić strukturę folderów).
Przy takich założeniach będzie można na bieżąco podglądać (testować) aplikacje bezpośrednio na serwerze produkcyjnym (programiści nie będą musieli mieć lokalnie serwera www).

Czy to wypali?
Piotr Lewandowski

Piotr Lewandowski Programista
aplikacji
internetowych (PHP,
MySQL, SF2, Mag...

Temat: SVN kilka pytań na początek

Dominik Z.:
Git ma jedną wadę, nie za dobrze radzi sobie z windowsem (pomijając już wygląd GUI), wolałbym pracować na Mercurial. Tyle, że dla niewielkiej liczby programistów to raczej nie ma sensu, lepiej to scentralizować - by mieć kontrole.

Nie radzi sobie z windowsem? To pierwsze słyszę :-)
Wracając do svn ...hmm to powiedzmy, że mam repozytorium w /var/svn, zgodnie z dokumentacją uruchamiam skrypcik do kopiowania plików z repozytorium do /var/www.
Jeśli projekt wymaga jakiś plików spoza głównego folderu aplikacji to w tedy powinienem stworzyć repozytorium, którego korzeń będzie obejmował wszystkie wymagane pliki, tak? Np. dla plików z /var/www i /etc powinienem mieć repozytorium z "/" i wykluczyć niepotrzebne pliki (nie dodawać ich, a uwzględnić strukturę folderów).
Przy takich założeniach będzie można na bieżąco podglądać (testować) aplikacje bezpośrednio na serwerze produkcyjnym (programiści nie będą musieli mieć lokalnie serwera www).

Czy to wypali?

Nie do końca rozumiem problem. Nie wiem co developujesz więc ciężko z twojego posta określić jakie możesz mieć potrzeby. Pomysł z jednym serwerem na którym developerzy integrują zmiany jest dobry, natomiast nad tym czy obędzie się bez środowiska dla każdego developera osobno bym się zastanowił jeszcze.

Myślę że jedno repo wystarczy a struktura może nawet wyglądać tak:
/trunk/mainapp/....
/trunk/etc (tylko pliki specyficzne dla aplikacji nie systemu)

...i jak tylko będzie wygodnie. Struktura repozytorium to jedno, deployment aplikacji to drugie.
Dla mnie za mało informacji podajesz aby można było coś konkretniejszego napisać.Piotr Lewandowski edytował(a) ten post dnia 04.05.13 o godzinie 12:13

Temat: SVN kilka pytań na początek

obawiam się, że jeżeli każdy będzie mieć swoje środowisko to mogą powstać problemy w jego konfiguracji (biblioteki, ustawienia, różne wersje oprogramowania etc.) a tak przynajmniej zachowam spójność.

Nie podawałem zbyt dużej informacji bo chciałem poznać ogólny zarys tego jak powinienem pracować. Nigdy nie pracowałem z takimi systemami, więc też nie wiem do końca czego powinienem się spodziewać.
Konkretnie to mamy stronę w /var/www ale niektóre pliki (konfiguracyjne) ukryliśmy w samym /var. Później zrodziła się potrzeba utworzenia folderów w /var dla różnych grup ustawień. Teraz okazuje się, że potrzebny jest system kontroli wersji.
Mikołaj W.

Mikołaj W. Pomagam rozwiązywać
problemy- nie tylko
IT

Temat: SVN kilka pytań na początek

Pracowałem na SVN i na GIT.

Z dwóch polecam GIT-a i to zdecydowanie.

Co do Windows - poszukaj tortoiseGIT - jest "nakładką" na gita do windows.

Główną zaletą GIT-a jest fakt że zatwierdzenie zmian jest szybsze i prostsze bo jest lokalne, a dopiero po takim zatwierdzeniu przesyłana jest informacja na serwer (o ile user tak zdecyduje).

Adrian Stolarski

Wypowiedzi autora zostały ukryte. Pokaż autora
Mikołaj W.

Mikołaj W. Pomagam rozwiązywać
problemy- nie tylko
IT

Temat: SVN kilka pytań na początek

Dominik Z.:
obawiam się, że jeżeli każdy będzie mieć swoje środowisko to mogą powstać problemy w jego konfiguracji (biblioteki, ustawienia, różne wersje oprogramowania etc.) a tak przynajmniej zachowam spójność.

Praca wielu programistów nigdy nie jest prosta, ale jakoś sobie zespoły (nawet duże) z tym radzą. Wniosek: da się. Jeżeli boisz się problemów związanych z różnicami w środowisku to proponuję abyś nie odrzucał takiego rozwiązania tylko zastanowił się jak to rozwiązać. Pierwsze to tak jak napisał Adrian - maszyny wirtualne - tutaj jest soft od MS, VMWare, Oracle, czego tylko chcesz. Drugie to na przykład check lista konfiguracji i oficjalne biblioteki - takie a takie wersje bibliotek ma mieć każdy programista. Porozmawiaj w teamie - coś wymyślicie. Przecież nawet przeciętny programista nie jest idiotą który chce problemów z zależnościami.

Drugie to cykl zmian. Nie ma możliwości aby repozytorium było na serwerze produkcyjnym. To jest złamanie zasad bezpieczeństwa, poufności, itp. To tak jakbyś cały kod udostępniał światu wraz z postępami, informacją na temat bugów, błędów i problemów. Co zrobisz jak ktoś się włamie na serwer www (zdarza się) i zrobi kopię repozytorium ? Wiesz jakie skutki ma danie hackerowi poprawnych danych (Imię, nazwisko, email) programistów ? Potrzebujesz cyklu zmian (DEV->TEST->Produkcja). Wyznacz elementy krytyczne (przejście testów oznacza że wersja jest ok). Zaprojektuj tagi (w GIT są, w SVN chyba też) oznaczające że wersja jest OK. I wskazujące na wersję.

GIT jest lepszy do pracy w zespołach programistycznych. I mówię to z własnego doświadczenia że lepiej się pracuje na GIT. Między innymi dlatego że

Co do struktury katalogów - tak, potrzebujesz jednego katalogu na cały projekt. Najlepiej zupełnie z boku. Na innym serwerze w siedzibie firmy. Jeżeli wymaga to przeprojektowania struktury katalogów - trudno - nauczycie się wszyscy czegoś nowego.

Osobiście bym zalecał podzielić team na 2 grupy (GIT/SVN) i pozwolić im pracować na drobnych rzeczach przez tydzień. Osobne repo na osobnym serwerze (wystarczy serwer plików). Ale ja bym wybrał GIT-a :D

Na koniec polecam blog maciejaniserowicz.com. - tam możesz więcej poczytać o produkcji softu.

Powodzenia.
MWW

Temat: SVN kilka pytań na początek

dzięki, zapomniałem pomyśleć o bezpieczeństwie, zainteresuje się gitem chodź wydaje się być bardziej przerażający niż svn a na pewno bardziej zagmatwany
Mikołaj W.

Mikołaj W. Pomagam rozwiązywać
problemy- nie tylko
IT

Temat: SVN kilka pytań na początek

Tutaj masz pomoc:
http://git-scm.com/book/pl

Nie jest przetłumaczone wszystko, ale podstawy masz.

Git wydaje się trudniejszy, ale odpłaca się podczas pracy.

Pozdrawiam,
MWW

konto usunięte

Temat: SVN kilka pytań na początek

GIT nie jest zagmatwany tylko działa na innej zasadzie i tworzy lokalne kopie całego repo, zamiast jednego centralnego repo. Rozproszony vs. zcentralizowany...



Wyślij zaproszenie do