Git против Mercurial vs SVN
Возможные дубликаты:
Для домашних проектов может ли Mercurial или Git (или другие DVCS) предоставить больше преимуществ перед Subversion?
Каковы относительные сильные и слабые стороны Git, Mercurial и Bazaar?
Каковы некоторые различия между этими системами управления версиями? Какой из них лучше всего подходит для небольшого проекта из 2 человек?
Ответы
Ответ 1
SVN отличается от Git и Mercurial тем, что это единственный репозиторий, который все пользователи должны извлекать и фиксировать.
Git и Mercurial имеют распределенную модель. Это означает, что на каждом компьютере есть репозиторий, и обычно есть "официальный" репозиторий, который люди будут выбирать для внесения изменений и извлечения.
Git и Mercurial чрезвычайно похожи. Я предпочитаю Mercurial, потому что я нашел его намного проще в использовании. Для группы из 2 человек я бы рекомендовал Mercurial, но это только мое мнение. Если вы не знакомы с управлением версиями, вам все равно придется тратить время на изучение любого из вариантов, но Mercurial казался мне самым легким.
Чтобы запустить репозиторий Mercurial, вам нужно открыть оболочку и компакт-диск в каталоге, в котором вы хотите иметь управление версиями, и введите hg init
. Это создает репозиторий. Чтобы добавить все в папку в репозиторий, введите hg add .
. Вот несколько других команд:
- Чтобы зафиксировать локальные изменения:
hg commit -m "Descriptions of changes"
- Чтобы перейти к последней версии с сервера:
hg pull
- Чтобы внести локальные изменения:
hg push
Ответ 2
Начнем с того, на каком языке они написаны. Мои опыты с Git и Mercurial были очень похожи, но я знаю, что если я хочу настроить Mercurial, я могу это сделать, потому что он написан на Python, Git, по крайней мере, несколько в C, о чем я не знаком.
Git и Mercurial - это то, что называется распределенным. Каждая копия создается равным образом, и они могут толкать и тянуть (используя эту терминологию), изменяются друг от друга на разовой основе. Subversion, с другой стороны, состоит из одного центрального репозитория, и каждая рабочая копия является подчиненным для этого центрального сервера, нажатие и вытаскивание (фиксация и обновление в этом случае) изменяет его и только в нем.
Установка Git или Mercurial для пары людей состоит в получении доступа SSH к тому же серверу и установке нескольких пакетов. В то время как для SVN, насколько я знаю, вам нужно настроить и запустить фактическое серверное приложение под Apache, а затем связаться с сертификатом SSL и .htaccess и т.д., Чтобы защитить его.
Для всех моих личных проектов я иду с Mercurial или Git. Если бы я работал с большой командой, я бы, вероятно, пошел Subversion, потому что вы получаете централизованную аутентификацию и хостинг. Но для двух человек я бы выбрал один из распределенных, потому что тогда вам не нужно возиться с централизованной аутентификацией и хостингом.: -)
Ответ 3
Git и Mercurial очень похожи (но достаточно различны, чтобы гарантировать осторожность). SVN, с другой стороны, совсем по-другому: первые два являются распределенными VCS, поэтому они не требуют центрального сервера, а SVN. В целом многие проекты движутся к распределенным системам.
Для вашего небольшого проекта вы, вероятно, лучше с Git или Mercurial. Какой из них вы выбираете, по сути, дело вкуса, хотя я предпочитаю сам Git (и гораздо более знаком с ним). Вам вообще не нужно настраивать сервер: вы можете нажимать/вытаскивать изменения через SSH или даже отправлять патчи по электронной почте друг другу (это можно сделать непосредственно из VCS, но это своего рода хлопот). Вы можете настроить центральный сервер в любое время, и все изменения будут там. Вы можете использовать, например. GitHub или Gitorious для размещения вашего проекта (если вы собираетесь с Git, я не знаю о Mercurial).