Какой VCS я должен использовать с Google Code? - PullRequest
5 голосов
/ 19 ноября 2009

Я собираюсь начать проект и думал об использовании Google Code для его размещения. Это дает возможность использовать Mercurial или SVN для контроля версий. Я никогда раньше не использовал VCS, и хотел бы знать, с какой из них легче работать.

В проекте участвуют два основных программиста, но некоторые другие могут внести небольшие суммы. Это в основном на python, и мы используем Emacs в качестве основного редактора. Мы оба используем операционную систему Windows.

Ответы [ 5 ]

12 голосов
/ 19 ноября 2009

Использовать Mercurial.

Обе системы будут простыми, но Mercurial будет быстрым . Хотите сравнить разницу между тем, что кто-то еще делал прошлой ночью, и тем, что вы делали прошлой ночью? С SVN это займет пару секунд на файл, пока он общается с серверами Google. С Mercurial это будет практически мгновенно.

Пару секунд на различие может показаться не таким уж большим, но преимущества быстрого и отзывчивого интерфейса станут очевидны после того, как вы воспользуетесь системой, которая устраняет большинство этих пауз.

О, и люди могут раскошелиться на ваш проект без , это огромная боль в заднице. Это тоже круто.

РЕДАКТИРОВАТЬ: Mercurial также не чувствует необходимости шлепать папку .svn в каждой папке в вашем проекте. Эти вещи ужасны (и не скрыты по умолчанию в Windows, как если бы они были в системе * nix). В корневом каталоге вашего проекта будет только одна папка .hg, которая будет намного чище.

РЕДАКТИРОВАТЬ: Еще одна причина использовать Mercurial: hg bisect. Отслеживание ошибки за 10 минут вместо 2 часов, потому что вы смогли найти точную ревизию, вызвавшую ее, удивительно . Похоже, что есть инструмент Perl svn-bisect, но он не в ядре, и медлительность SVN в обновлении между ревизиями сделает его намного более длительным процессом.

1 голос
/ 19 ноября 2009

Если вы никогда не использовали VCS, вам, вероятно, будет трудно / легко с любым из них. Я не думаю, что в этом есть принципиальные различия. Важное различие между этими двумя, однако, состоит в том, что SVN централизован, а Mercurial децентрализован.

Если вы работаете там, где у вас нет доступа к сети (самолеты, поезда и т. Д.), Децентрализованная система VCS позволит вам зафиксировать изменения локально, прежде чем начинать новые изменения. Позже вы синхронизируете с центральным хранилищем. Это может быть удобно.

Централизованная VCS не позволяет этого. Конечно, вы можете по-прежнему работать над своим кодом, но, поскольку вы не можете выполнить проверку между изменениями, вам придется сразу же зафиксировать накопленные изменения, когда вы снова получите доступ к хранилищу.

1 голос
/ 19 ноября 2009

Простой ответ - SVN - запустите TortoiseSVN и TortoiseHg, и вы увидите, что первый на некотором расстоянии опережает последний с точки зрения эстетики и удобства использования, однако я не думаю, что простой ответ достаточно хорош в этом случай.

Если вы собираетесь начать использовать контроль версий в первый раз, у меня будет соблазн (несмотря на то, что в настоящее время мне гораздо удобнее работать с SVN, чем с Hg) предположить, что Mercurial - лучший путь. Распределенное управление версиями (DVCS) в настоящее время предлагает большую гибкость, чем Subversion, благодаря своей зависимости от центрального хранилища. В частности, ваша способность фиксировать локальный код, который не является завершенным, до отправки завершенных изменений вашим коллегам. У Mercurial есть «книга», поэтому у вас есть набор рекомендаций для работы, и он общепринят как инструмент, так что доступна поддержка сверстников.

Моя основная проблема с DVCS заключается в том, что по разным причинам я считаю управление версиями неполным без отдельного сервера (или, по крайней мере, без репозитория, не входящего в комплект поставки). Однако в этом случае у вас будет центральный репозиторий ... так что аргумент будет менее действительным.

У меня есть вторичная проблема, которая, я думаю, должна быть направлена ​​на внедрение сервера непрерывной интеграции (сборка и тестирование) в свои проекты при первой же возможности, но, опять же, это то, что можно сделать с помощью DVCS с помощью общего / центрального хранилища. .

Я все еще думаю, что у SVN есть лот , чтобы похвалить его, наш рабочий репозиторий есть и останется SVN в обозримом будущем (обратите внимание, что я тот, кто принимает решение!), Но в равной степени Я делаю свои личные вещи с Mercurial и учусь на ходу.

1 голос
/ 19 ноября 2009

Если вы никогда раньше не использовали VCS, выберите любой. И того, и другого вам будет достаточно, и вам придется учиться с нуля.

Mercurial децентрализован, как git, но я не стал бы беспокоиться об этом слишком сильно для команды программистов, которая никогда не подвергалась контролю исходного кода.

Выберите и забудьте об этом.

0 голосов
/ 19 ноября 2009

Ну, я думаю, вы должны использовать SubVersion. Не потому, что SVN почему-то лучше, чем Mercurial в функциональном плане, а потому, что SVN очень популярен и для него имеется много документации (например, бесплатная электронная книга), а также очень хорошие бесплатные плагины (AnkHSVN для VS, TortoiseSVN для Windows Explorer ). Я думаю, что документация быстро поможет вам начать работу, если вы никогда раньше не использовали VCS ...

НТН!

...