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 :-)