Subversion Proxy для работы в автономном режиме? - PullRequest
3 голосов
/ 11 августа 2009

Каков наилучший подход для работы на сайте клиента (с несколькими людьми), где, возможно, нет доступа в Интернет все время, и с использованием хранилища Subversion?

(Миграция на Git или Mercurial в данный момент исключена)

Но нельзя ли использовать что-то вроде, например, Git SVN Integration, для создания прокси-сервера, который действует как хранилище subversion для клиентов и может быть использован в конце для синхронизации изменений обратно к subversion? Уже есть что-то подобное?

Ответы [ 5 ]

3 голосов
/ 11 августа 2009

Я думаю svk может предоставить то, что вы ищете.

2 голосов
/ 11 августа 2009

На самом деле в Git есть инструмент git-svn. Вы можете найти больше информации здесь: http://git -scm.com / документы / ГИТ-SVN

Вы используете git в качестве основного VCS, а затем синхронизируете его с репозиторием SVN.

1 голос
/ 17 июня 2010

Недостаточно повторений, чтобы комментировать, но я хотел отметить, что svk официально 'мертв'; проект больше не улучшался предыдущим сопровождающим, который был в значительной степени одним парнем. По сути, сопровождающий проекта сказал: «SVK был классным, но теперь все знают, что вы должны использовать распределенные инструменты, так что больше не стоит поддерживать».

Официальный пост в стиле 'конец жизни' можно найти на веб-сайте Best Practical, в его посте на эту тему.

Тем не менее, svk, вероятно, все еще правильный инструмент. Даже если бы существовал git-svnserver, вы не смогли бы выполнить несколько коммитов удаленно, используя клиент SVN. Тем не менее, изучение SVK на самом деле не все , что отличается от изучения Git. В конце концов, я думаю, что git-svn - это, вероятно, инструмент, который вам нужен, потому что ваш вариант использования - использование клиента SVN для фиксации нескольких изменений, а затем отправки на сервер - невозможно. Бэкэнд может остаться SVN или чем-то еще, но вам придется выучить некоторого другого клиента, и git, вероятно, правильный.

0 голосов
/ 16 марта 2013

Вы можете оформить заказ из Subversion с помощью Git или Bazaar (и, я думаю, Mercurial тоже), перейти на сайт клиента и работать в автономном режиме, делая столько «локальных коммитов», сколько хотите, и когда у вас снова будет возможность подключения, у вас есть различные варианты. чтобы вернуть эти изменения в Subversion. Давайте быстро пройдемся по ступеням.

  1. Извлечение из Subversion с использованием Git (git-svn) или Bazaar (bzr-svn):

    # using Git
    git svn clone SVN_REPO_URL
    # using Bazaar
    bzr branch SVN_REPO_URL
    

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

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

  2. Работайте на сайте клиента (или отключите его, или в кафе) и вносите изменения столько, сколько хотите. Вам не нужно сетевое соединение, так как это распределенные инструменты VCS, весь репозиторий существует локально, и ваши коммиты будут в этом локальном репозитории.

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

    Конечно, вы должны быть знакомы с Git / Bazaar, чтобы иметь возможность использовать его.

  3. Возвращение ваших локальных изменений в Subversion. Есть два основных способа: перебазирование и слияние. Перебазирование означает возврат ваших локальных изменений к точке оформления заказа, быструю пересылку изменений в пропущенном вами хранилище Subversion и повторное воспроизведение ваших изменений, а затем отправку этих изменений в Subversion.

    Использование Git:

    git svn rebase
    git svn dcommit
    

    Использование Bazaar:

    bzr rebase
    bzr push :parent
    

Это своего рода расширенное использование инструментов. Во-первых, вам нужно установить дополнительные плагины (git-svn, если вы решите использовать Git, bzr-svn и bzr-rewrite, если вы решите использовать Bazaar (хотя они включены в установку по умолчанию в Windows и Mac OS X), и вам нужны практические знания этих инструментов, чтобы эффективно их использовать.

0 голосов
/ 11 августа 2009

Вы можете использовать SVK , который представляет собой набор сценариев Perl, основанных на Subversion, который предлагает некоторые функции, подобные DVCS. Я использовал SVK и раньше, но только очень простым способом. Я понимаю, что он может выполнять подобные операции в автономном режиме.

...