Лучшая система контроля версий для несетевой среды?

StackOverflow https://stackoverflow.com/questions/212847

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Наибольшие требования следующие:

  1. Работает в Windows XP и Vista.(абсолютно необходимо)
  2. Изменения могут быть зафиксированы локально.(Похоже, так происходит со всеми DVCS)
  3. Репозитории с нескольких машин можно объединять без доступа к сети.(Возможно, сохранив репозиторий на USB-накопителе и заменив диск на другой компьютер, а затем объединив его)

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

Любые предложения относительно того, какой DVCS подходит лучше всего.

РЕДАКТИРОВАТЬ:

Спасибо за ответы.Mercurial выглядит довольно хорошо, но поддерживает ли он объединение репозиториев из одного каталога в другой, или мне нужно настроить локальную сеть для объединения?

Это было полезно?

Решение

Меркуриальный довольно прост в использовании как в Windows, так и в Linux. ЧерепахаHg это графический интерфейс для Windows, который интегрируется в проводник;Он работает нормально.Оба имеют открытый исходный код.Насколько я понимаю, использовать Git под Windows не так просто.

Спасибо за ответы.Mercurial выглядит довольно хорошо, но поддерживает ли он слияние репозиториев от одного каталога в другой, или мне нужно настроить локальную сеть для слияния?

Mercurial/TortoiseHg сделает это (и даже больше), как и все другие распределенные инструменты контроля версий (насколько мне известно).Я верю, что это решит вашу проблему.Это DVCS, и благодаря TortoiseHg его легко использовать в Windows.Другие распределенные инструменты контроля версий, вероятно, тоже подойдут (например, bzr), но у меня меньше опыта работы с ними.Subversion (svn) — это централизованный инструмент контроля версий.С помощью некоторых обходных путей вы можете заставить его работать в вашей среде, но на самом деле он не решает проблемы, которые вы хотите решить.Я понятия не имею, почему другие респонденты предлагают это.

Другие советы

Git прекрасен, но его поддержка Windows крайне слаба (даже с MSysGit).Я бы порекомендовал Меркуриал.На самом деле я сам им не пользовался, но слышал, что его поддержка Windows вполне пригодна.Кроме того, кривая обучения для людей, пришедших из традиционных систем контроля версий (например, SVN), немного проще.

Наверное Меркуриальный вполне соответствует вашим потребностям.

  • Он написан на Python, поэтому у вас не возникнет проблем с его запуском под Windows.
  • Изменения можно легко применять локально с помощью патчей или пакетов.
  • Есть пара Инструменты графического интерфейса доступен (ищите TurtoiseHG)

Mercurial — это система управления версиями, которую я лично использую.Действительно легко учиться.Вы определенно захотите попробовать его через Git, поскольку поддержка Windows у него намного лучше.

Я люблю базар: http://bazaar-vcs.org/

В нем есть все, что вы просите, и он очень прост в использовании.

Спасибо за ответы.Mercurial выглядит довольно хорошо, но поддерживает ли он объединение репозиториев из одного каталога в другой, или мне нужно настроить локальную сеть для объединения?

Да, это так. Все DVCS поддерживают это.Единственная разница между этим и слиянием с сервера обычно заключается в том, что вы передаете соответствующей команде путь к локальному файлу вместо URL-адреса.

В Mercurial это выглядит так:

Предположим, у вас есть два репозитория: один на жестком диске (C:\Project) и один на флэш-накопителе (F:\Project):

cd C:\Project

hg pull F:\Project

Аналогично, если у вас есть два репозитория в одной системе:

cd C:\Project

hg pull C:\Project1

Если возникнет необходимость в слиянии, он создаст две «головы» и попросит вас объединить их с hg merge.

added 1 changesets with 1 changes to 1 files (+1 heads)

(run 'hg heads' to see heads, 'hg merge' to merge)

Обратите внимание: это то же самое, как если бы вы извлекли и объединили данные с сервера.

Я обнаружил, что SVN удивительно прост в настройке и использовании, особенно для одного пользователя!

Одна вещь, которая мне показалась действительно интересной: протокол ssh+svn использовал возможность SSH запускать командную строку в удаленной системе для фактического запуска SVN, поэтому на самом деле на сервере не было НИКАКОЙ настройки, кроме создания каталога для вашего репозитория.

В SVN есть множество оболочек, если вам не нравится CLI (TortiseSVN в Windows), поэтому его так же легко использовать, как и все остальное.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top