Git vs Mercurial vs SVN [duplikat]

Możliwe duplikaty:
czy w przypadku projektów domowych Mercurial lub Git (lub innych DVC) mogą zapewnić więcej korzyści niż Subversion?
Jakie są względne mocne i słabe strony Git, Mercurial i Bazaar?

Jakie są różnice między tymi systemami kontroli źródeł? Który z nich jest najlepszy dla małego projektu dla 2 osób?

Author: Community, 2010-07-06

3 answers

SVN różni się od Git i Mercurial tym, że jest to jedno repozytorium, które wszyscy użytkownicy muszą ściągnąć i zobowiązać.

Git i Mercurial mają Model rozproszony. Oznacza to, że na każdym komputerze znajduje się repozytorium i zwykle jest to "oficjalne" repozytorium, w którym ludzie zdecydują się zatwierdzić swoje zmiany i z którego będą pobierać.

GIT i Mercurial są bardzo podobne. Wolę Mercurial, ponieważ uznałem go za znacznie łatwiejszy w użyciu. Dla 2 osobowej ekipy polecam Mercurial, ale to tylko moje zdanie. Jeśli nie jesteś zaznajomiony z kontrolą wersji, nadal będziesz musiał poświęcić czas na naukę korzystania z dowolnej opcji, ale Mercurial wydawał mi się najłatwiejszy.

Aby uruchomić repozytorium Mercurial, wystarczy otworzyć powłokę i płytę cd do katalogu, w którym chcesz mieć kontrolę wersji, i wpisać hg init. Tworzy repozytorium. Aby dodać wszystko z folderu do repozytorium, wpisz hg add .. Oto kilka innych różnych polecenia:

  • aby zatwierdzić lokalne zmiany: hg commit -m "Descriptions of changes"
  • Aby pobrać najnowszą wersję z serwera: hg pull
  • aby przesunąć lokalne zmiany: hg push
 49
Author: Conceited Code,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-03 15:52:11

Na początek, jest język, w którym są napisane. Moje doświadczenia z Gitem i Mercurialem były bardzo podobne, ale wiem, że jeśli chcę poprawić Mercurial, mogę to zrobić, ponieważ jest napisany w Pythonie. Git jest przynajmniej trochę w C, z którym nie jestem tak zaznajomiony.

Git i Mercurial to tak zwane rozproszone. Każda kopia jest tworzona równo i mogą one doraźnie przesuwać i ciągnąć (używając tej terminologii) zmiany od siebie nawzajem. Z drugiej strony Subversion, składa się z jednego centralnego repozytorium, a każda kopia robocza jest niewolnikiem tego centralnego serwera, pchając i ciągnąc (zatwierdzając i aktualizując, w tym przypadku) zmiany z niego i tylko z niego.

Instalacja Git lub Mercurial dla kilku osób polega na uzyskaniu dostępu SSH do tego samego serwera i zainstalowaniu kilku pakietów. Natomiast dla SVN, z tego co wiem trzeba skonfigurować i uruchomić rzeczywistą aplikację serwerową pod Apache, a potem zadzierać z CERTEM SSL i .htaccess itp. na zabezpiecz to.

Do wszystkich moich osobistych projektów wybieram Mercurial lub Git. Gdybym pracował z dużym zespołem, prawdopodobnie poszedłbym na Subversion, ponieważ dostajesz scentralizowane uwierzytelnianie i hosting. Ale dla dwóch osób wybrałbym jedną z rozproszonych, ponieważ wtedy nie musisz zadzierać ze scentralizowanym uwierzytelnianiem i hostingiem. :-)

 16
Author: jacobbaer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-06 02:02:46

GIT i Mercurial są dość podobne (ale na tyle różne, że wymagają ostrożności). SVN z drugiej strony jest zupełnie inny: dwa pierwsze są rozproszone VCSs, więc nie wymagają centralnego serwera, podczas gdy SVN tak. Ogólnie wiele projektów zmierza w kierunku systemów rozproszonych.

Dla Twojego małego projektu, prawdopodobnie lepiej będzie Ci z Git lub Mercurial. To, który z nich wybierzesz, jest w zasadzie kwestią gustu, chociaż sam wolę Git (i jestem z nim znacznie bardziej zaznajomiony). Potrzebujesz nie konfigurować serwera w ogóle: można push/pull zmiany przez SSH lub nawet e-mail łaty do siebie (można to zrobić bezpośrednio z VCS, ale jest to rodzaj kłopotów). Możesz skonfigurować centralny serwer w dowolnym momencie, a wszystkie zmiany będą tam. Możesz użyć np. GitHub lub Gitorious do hostowania twojego projektu(jeśli korzystasz z Gita, Nie wiem jak Mercurial).

 6
Author: goffrie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-06 02:06:46