Работа в автономном режиме с SVN на локальной машине временно - PullRequest
33 голосов
/ 08 февраля 2011

Я сейчас работаю над проектом в SVN.Однако у меня не будет доступа к Интернету в течение нескольких дней, и я буду работать над моим проектом.

Есть ли способ сделать клон репозитория на моем локальном компьютере, зафиксировать изменения в нем, и когда я получу доступ к Интернету, "протолкнуть" их в общий репозиторий?Думая с точки зрения Mercurial здесь, стоит ли полностью мигрировать?!

Ответы [ 7 ]

55 голосов
/ 09 февраля 2011

Ваша проблема звучит для меня как сценарий использования для git-svn:

  • настройка репозитория Git: git svn clone http://svn.example.com/project/trunk
  • во время нахождения в сети, передайте изменения в SVN
  • перед тем, как перейти в автономный режим, выполните git svn rebase, чтобы синхронизировать репозиторий Git с репозиторием SVN
  • , находясь в автономном режиме, подтвердитеРепозиторий Git, использующий git commit
  • при повторном подключении к сети, выполните git svn dcommit, чтобы отправить свои изменения в репозиторий SVN

Я использую этот рабочий процесс ежедневно!

При этом вы получаете два огромных преимущества:

  • ваша полная история SVN сохраняется в репозитории Git и в каждом репозитории Git, который клонируется из этого
  • находясь в автономном режиме, вы можете просматривать сообщения о коммитах, проверять другие ветки и т. д.
8 голосов
/ 08 февраля 2011

Смешным ответом будет переход на другой инструмент управления версиями, без обид!

У меня была точная проблема.
Я использовал SVN на моем "реальном" сервере, где "настоящий" репозиторий.
Когда я выходил со своим ноутбуком, без интернета я просто дублировал бы «настоящий» репозиторий на этом ноутбуке (VisualSVN + TortoiseSVN), работал на нем, изменял / фиксировал все что угодно, а когда возвращался, просто «синхронизировал» новый »пересмотреть файлы в «настоящий» репозиторий.

Чтобы быть немного более понятным: имейте два SVN-сервера, один локально на вашем ноутбуке ( клон ) и один на вашем «реальном»сервер (очевидно).Просто синхронизируйте между ними.

6 голосов
/ 08 февраля 2011
5 голосов
/ 08 февраля 2011

Я использовал git в проекте, который использует SVN по той же причине, что вы описали выше. Некоторые привыкли к git / mercurial, но через некоторое время мне очень нравится новый подход. Кроме того, у меня никогда не было проблем с использованием git-svn, я никогда не пробовал mercurial и svn ..

Если вы находитесь на Mercurial и все еще ищете хороший учебник с одним или двумя смешками между ними, ознакомьтесь с этим учебником , написанным Джоэлем Спольски. И, как уже упоминалось ранее, безусловно, это отличная возможность начать работу с DVCS.

1 голос
/ 31 декабря 2017

Отказ от ответственности: я являюсь автором SOS (SVN Offline Support).

Я написал этот простой в использовании инструмент командной строки, чтобы точно решить проблему работы с SVN в автономном режиме, но он работает не тольков проверках SVN, но для любой рабочей копии VCS (например, Bazaar, Git, ископаемого) или даже в неотслеживаемых файловых деревьях.SOS позволяет выполнять простые коммиты, ветвления, операции переключения / обновления, не обладая всеми сложными семантическими фоновыми знаниями, необходимыми для традиционных VCS.После возврата в онлайн вы можете интегрировать все изменения обратно в вашу базовую VCS.

Веб-сайт

Для установки требуется Python 3, и он обрабатывается с помощью pip install -U sos-vcs

1 голос
/ 08 февраля 2011

Всегда есть SVK . Я не использовал его годами, поэтому не уверен, насколько хорошо он работает.

0 голосов
/ 08 февраля 2011

Хехехе, хорошее время, чтобы открыть для себя ртутный или мерзавец для себя !!

...