Отключенный контроль версий - PullRequest
1 голос
/ 28 июля 2011

Моя команда работает в автономном режиме. то есть они разрабатывают приложения и используют SVN внутри сети компании для управления версиями кода.

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

В этом режиме работы я сталкиваюсь с двумя проблемами.

  1. Если моя команда удаляет / переименовывает некоторые файлы, и я просто вставляю новый код, полученный от моей команды, поверх моей рабочей копии ... удаленные файлы остаются в моей рабочей копии.
  2. Чтобы избежать первой проблемы ... Я попросил их прислать мне файл патча. Патч-файл работал с большей вероятностью успеха, но он не смог обработать двоичные файлы. Поэтому, если моя команда добавляет новые шаблоны изображений / xls и т. Д. В базу кода, я не получаю их через файл патча. 2.

Таким образом, я начал чувствовать, что два отключенных SVN-репозитория не являются правильным решением для моей ситуации.

  • Вы, ребята, были в такой ситуации раньше?
  • Что вы делали?
  • Есть ли в SVN что-то, что может помочь мне в этом?
  • ИЛИ Есть ли другая система контроля версий, которая поможет мне решить эту проблему?
  • Если да, можете ли вы указать мне соответствующие команды в VCS?

Предпочтительны бесплатные альтернативы.

Ответы [ 6 ]

5 голосов
/ 28 июля 2011

Я бы предпочел сервер SVN настоящей DVCS, такой как git.Даже без прямого соединения, изменения между ними могут распространяться с помощью патчей, отправляемых по электронной почте (это работает для двоичных файлов).См. man git-format-patches и man git-am.А также man git-bundle, если вы не планируете читать патчи.

Если преобразование центрального сервера не является вариантом, вы все равно можете попросить кого-нибудь в сети SVN использовать git-svnперед созданием исправлений, которые он отправляет вам, или после применения исправлений, которые вы отправляете ему обратно.(Убийство SVN, конечно, было бы лучшим долгосрочным решением.)

2 голосов
/ 28 июля 2011

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

1 голос
/ 28 июля 2011

Посмотрите на bzr-svn, как упомянуто @elevener, или, для git-эквивалента, используйте git-svn

EDIT:

У меня сложилось впечатление, что у вас иногда есть доступ к корпоративной сети, где вы можете сдвинуть / сдвинуть свои изменения. Если это не так, то я думаю, что ручное исправление является единственным способом (поскольку у вас практически нет доступа к SVN-серверу компании).

Предоставляет ли ваша компания доступ к внутренней сети каким-либо образом (SSH? VPN?)? Если это так, возможно, вы можете использовать SSH туннелирование или VPN для доступа к серверу SVN.

0 голосов
/ 29 июля 2011

Посмотрите на git-bundle шаг передачи sneakernet.Это должно позволить вам упаковать пакет изменений для ручной передачи по VPN между сетями.

Я сам смотрел на проблему exchange (см. Мои различные вопросы по SO) и я думаю, что их можно заставить работать, хотя вам может понадобиться ноутбук этой компании; -)

0 голосов
/ 28 июля 2011

Сам не использовал, но AFAIK вы можете использовать базар. Это распределенный контроль версий, который может использовать SVN в качестве центрального хранилища.

См. bzr-svn .

0 голосов
/ 28 июля 2011

Если вы находитесь в другой сети и не имеете доступа к вашей VCS, будет работать только ручное исправление.Даже в DVCS (git или mercurial) вы должны находиться в одной сети, чтобы выталкивать или извлекать данные из удаленного репо.Итак, насколько я знаю, ручное исправление является единственным решением в вашем случае.

Есть комментарии от экспертов SVN?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...