SVN совершить несколько репозиториев - PullRequest
6 голосов
/ 10 февраля 2010

У меня есть основной проект, над которым я работаю, который имеет несколько модулей / каталогов. Основной проект связан с локальным хранилищем SVN. однако всякий раз, когда я делаю коммит, я бы хотел добавить некоторые модули / каталоги в хранилище кода Google. Однако я хочу обновить только из локального хранилища. Есть ли способ сделать это автоматически? моя IDE - это emacs 23.

Спасибо

Ответы [ 4 ]

6 голосов
/ 10 февраля 2010

Это , как книга SVN рекомендует Вы делаете это. Это кажется довольно болезненным и в основном вращается вокруг наличия рабочей копии для каждого репо и буквального копирования изменений между ними (вы могли бы также сделать это с патчами SVN).

В качестве альтернативы вы можете изучить использование SVK (который является уровнем распространения для SVN, добавляющим функциональность Git-ish в SVN) для настройки репозитория зеркалирования или объединения с внешними репозиториями. Осторожно, документация для SVK немного дезорганизована. Очевидно, справка командной строки хороша.

4 голосов
/ 10 февраля 2010

Каждая рабочая копия в SVN указывает на один репозиторий. Что вы можете сделать, это использовать svn switch, чтобы изменить свой репозиторий так, чтобы он указывал на репозиторий Google Code, прежде чем обновлять и фиксировать каталоги, которые вы хотите там хранить. Затем вы можете переключиться обратно, чтобы указать свою рабочую копию в стандартном хранилище. Это, конечно, зависит от совместимости структур каталогов в обоих хранилищах.

1 голос
/ 05 сентября 2012

Похоже, что есть лучшее решение с использованием svnsync.

  1. Инициализируйте зеркальный репозиторий для синхронизации из исходного репозитория. Это первая svnsync операция, которую вы выполняете в потенциальном зеркальном хранилище:

    svnsync initialize MIRROR_URL SOURCE_URL
    
  2. Перенесите все ожидающие ревизии из исходного хранилища в зеркальное хранилище:

    svnsync synchronize DEST_URL
    
  3. Только для выбранных или специальных случаев для копирования ожидающих изменений, как описано в руководстве:

    svnsync copy-revprops DEST_URL [REV[:REV2]
    
1 голос
/ 04 сентября 2012

Если не ошибаюсь, SVN-переключатель не является решением.

Переключатель SVN не только подключает (или переключает) рабочий каталог из одного хранилища в другое хранилище! Он также выполняет автоматическое обновление (или извлечение) из нового хранилища. Так что, если я не ошибаюсь, любые локальные изменения в рабочем каталоге будут потеряны, поскольку будут перезаписаны новым хранилищем.

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

...