Скопируйте только определенные изменения SVN от одного репозитория до другого

Я выполняю сервер SVN на сервере Linux. Я выезжаю из города в течение недели где-нибудь без доступа в Интернет и поэтому никакого доступа SVN.

Таким образом, я пытаюсь выяснить, как взять снимок репозитория со мной на моем ноутбуке и затем объединить новые изменения назад в существующий репозиторий, когда я возвращаюсь...

  • Мой ноутбук запускает Windows 7, так прежде всего, я думаю, что Сервер VisualSVN является, вероятно, сервером, который я выполню локально.

  • Я должен смочь вывести свой текущий репозиторий и затем загрузить его в новый репозиторий на моем ноутбуке

  • Но то, в чем я не уверен, когда я возвращаюсь из из города. У меня будут все эти новые изменения на сервере SVN на моем ноутбуке. Как я вывожу и затем загружаю только эти новые изменения в репозиторий на моем сервере Linux?

  • Если я использую >svnadmin dump --revision 50:75 (принятие изменений 50 - 75 представляет новые изменения, которые я сделал на своем ноутбуке), я могу просто загрузить тот файл дампа в свой существующий репозиторий на моем сервере Linux? Это настолько легко? Я знаю, что существует некоторый материал относительно репозитория UUID, которые могли бы вызвать некоторые проблемы...

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

ОБНОВЛЕНИЕ

Я не знал, что мог получить доступ к репозиторию локально просто использование file:///. Таким образом, это будет, вероятно, работать лучше, чем необходимость выполнить Сервер VisualSVN. Однако основной вопрос все еще остается: Как я получаю новые изменения от одного репозитория до другого?

5
задан Jake Wilson 29 June 2010 в 03:33
поделиться

4 ответа

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

Получите доступ к нему по протоколу file: ///, пока вас нет, а затем верните его на сервер, когда вернетесь. . .

2
ответ дан 15 December 2019 в 00:49
поделиться

Чтобы извлечь набор ревизий (от nn до mm) из репозитория:

svnadmin dump --incremental -r nn:mm /path/to/repository > /path/to/dumpfile.svn

Опция --incremental позволяет вам объединить этот набор изменений без переноса всей базовой линии вместе с импортом.

Чтобы применить эти изменения к хранилищу:

svnadmin load --ignore-uuid /path/to/repository < /path/to/dumpfile.svn

Опция --ignore-uuid позволяет импорту удалить информацию uuid из исходного хранилища.

Я бы ограничил эту операцию репозиториями с общим наследием ревизий, иначе загрузка, вероятно, будет неудачной.

2
ответ дан 15 December 2019 в 00:49
поделиться

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

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

0
ответ дан 15 December 2019 в 00:49
поделиться

Я бы рекомендовал создать локальный репозиторий git или mercurial прямо поверх вашей локальной рабочей копии.

Вы можете добавить папки .svn и артефакты в файлы .hgignore или .gitignore, чтобы сохранить репозиторий в чистоте, а затем, когда вы вернетесь, вы можете просто выполнить svn-фиксацию изменений или, если хотите, сделайте поэтапную фиксацию обратно в Subversion для каждой значимой единицы работы, которую вы зарегистрировали в mercurial / git, пока вы были в дороге.

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

0
ответ дан 15 December 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: