Как мне исправить проект Subversion, где я опустил транк? - PullRequest
5 голосов
/ 30 января 2009

У меня есть проект в Subversion, который называется Inboundem. Это был мой первый, и когда я его создал, я опустил багажник. Мне нужно получить его в правильной структуре, как inboundem / trunk. У меня был другой проект, подобный этому, но поскольку не было ревизий, я сделал svn delete, а затем svn import, и это сработало хорошо. Но у меня много изменений в inboundem, и я не хочу терять историю.

Я не могу сделать svn move, так как svn не позволит мне переместить проект в себя.

Я подозреваю, что мне нужно пойти по пути дампа / загрузки svnadmin, поэтому я сделал:

svnadmin dump /subversion/active | svndumpfilter include inboundem > inboundem.dump

и это создало файл дампа со всей моей историей для inboundem. Но что мне теперь делать?

Я подозреваю, что должен сделать svn delete и стереть проект, затем вручную отредактировать файл дампа и изменить путь к узлу везде с inboundem на inboundem / trunk, а затем сделать

svnadmin load /subversion/active < inboundem.dump

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

Ответы [ 3 ]

18 голосов
/ 30 января 2009
svn mv svn://repo/inboundem svn://repo/trunk
svn mkdir svn://repo/inboundem
svn mv svn://repo/trunk svn://repo/inboundem/trunk
2 голосов
/ 30 января 2009

Почему бы просто не создать в корневом каталоге проекта папку «trunk», а затем переместить все файлы / папки в корневом каталоге в эту папку?

Я делал это раньше в Черепахе, я не уверен, какую подстилающую команду он использует, потому что вы говорите, что SVN Move не будет работать для вас. Может быть, попробуйте скопировать, а затем удалить?

0 голосов
/ 30 января 2009

Вы можете использовать svn export, а затем переместить экспортированный источник в / trunk и затем зафиксировать изменения (добавив новые папки в / trunk)

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

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