Подтвердить что ты не робот

Git против Mercurial vs SVN

Возможные дубликаты:
Для домашних проектов может ли Mercurial или Git (или другие DVCS) предоставить больше преимуществ перед Subversion?
Каковы относительные сильные и слабые стороны Git, Mercurial и Bazaar?

Каковы некоторые различия между этими системами управления версиями? Какой из них лучше всего подходит для небольшого проекта из 2 человек?

4b9b3361

Ответ 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).