Как перенести код в другой репозиторий для SVN? - PullRequest
4 голосов
/ 31 марта 2009

У нас есть два репозитория, один для текущего кода и один для управления проектами.

Теперь нам нужно добавить код в репозиторий управления проектами.

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

Итак, я экспортирую код и регистрируюсь в репозитории проекта.

Вопросы:

  • как перенести код в другой репозиторий?
  • для моего случая, как я могу переместить изменения обратно из репозитория проекта? в текущий репозиторий? (Я еще не тестировал, но думаю, что diff или патч могут работать)

PS: я знаю, что есть магистральный / ответвленный путь, но мы используем два хранилища.

Ответы [ 5 ]

6 голосов
/ 31 марта 2009

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

В противном случае может быть проще сохранить два репозитория и добавить внешние определения (ссылки), чтобы они сосуществовали. Таким образом, вам не придется много беспокоиться о том, чтобы что-то сломать.

3 голосов
/ 31 марта 2009

TortoiseSVN предлагает функцию «копировать и добавлять эти файлы здесь», но в SVN 1.5.5 эта функция не поддерживалась. Я еще не тестировал его с 1.6.0

Перетащите правой кнопкой мыши (не обычным перетаскиванием влево) ваши файлы из хранилища A в каталог внутри хранилища B и отпустите кнопку мыши. Появится меню с вопросом, что вы хотите сделать. Я думаю, есть 4 варианта на выбор (кроме обычных вариантов ОС). Выберите тот, который наиболее подходит.

1 голос
/ 01 апреля 2009

Официальный svn-book ссылается на скрипт, который вы можете использовать для упрощения этого процесса, и называется svn_load_dirs.pl. Взгляните на онлайн руководство

1 голос
/ 31 марта 2009

Если под ответственностью вы подразумеваете репозиторий (спасибо, Блэр), вы обнаружили, что не можете переходить на другой репозиторий. Но если ваш код и ваш проект связаны между собой, то имеет смысл иметь их в одном хранилище. Вы хотите узнать больше о SVN и использовать его лучше. Например, «trunk» - это просто имя каталога, поэтому у вас может быть одно для проекта, а другое - для кода. Хотя, используя эти конкретные слова, большинство из нас ожидает, что «код» будет внутри «проекта».

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

0 голосов
/ 31 марта 2009

Вы должны иметь весь код в одном хранилище.

Это может выглядеть так:

name/trunk/src
name/branches/dev/src

Или в словах, которые вы использовали:

name/current-code/src
name/project/src

Тогда вы можете легко svn merge взад и вперед.

...