Ответ 1
svn mv svn://repo/inboundem svn://repo/trunk
svn mkdir svn://repo/inboundem
svn mv svn://repo/trunk svn://repo/inboundem/trunk
У меня есть проект в subversion, называемый inboundem. Это был мой первый, и когда я его создал, я опустил сундук. Мне нужно перевести его в правильную структуру как inboundem/trunk. У меня был другой проект вроде этого, но поскольку изменений не было, я сделал svn delete
, а затем svn import
, и это сработало хорошо. Но у меня много изменений с inboundem, и я не хочу потерять историю.
Я не могу сделать svn move
, так как svn не позволит мне переместить проект в себя.
Я подозреваю, что мне нужно спуститься по пути svnadmin dump/load, поэтому я сделал:
svnadmin dump /subversion/active | svndumpfilter include inboundem > inboundem.dump
и это создало файл дампа со всей моей историей для inboundem. Но что мне теперь делать?
Я подозреваю, что должен сделать svn delete
и удалить проект, а затем вручную отредактировать файл дампа и изменить Node -path всюду от inboundem до inboundem/trunk, а затем сделать
svnadmin load /subversion/active < inboundem.dump
Это безопасно? Есть ли более простой способ? Возможно, мне нужно просто переборщить его и проверить все версии один за другим, удалить проект, а затем воссоздать ревизию проекта по версии.
svn mv svn://repo/inboundem svn://repo/trunk
svn mkdir svn://repo/inboundem
svn mv svn://repo/trunk svn://repo/inboundem/trunk
Почему бы просто не создать папку в корне проекта с именем "trunk", а затем переместить все файлы/папку в корень в эту папку?
Я делал это раньше в Tortoise, я не уверен, что подкладывает команду, потому что вы говорите, что svn move не будет работать для вас. Может быть, попробуйте скопировать, а затем удалить?
Вы можете использовать экспорт svn, а затем переместить экспортированный источник в /trunk, а затем зафиксировать изменения (добавив новые папки в /trunk )
И затем удалите (и вызовите delete) в старых папках, все равно будет история их восстановления, если вам нужно, но она восстановит их в старой папке, а не в новой соединительной линии. Весь экспорт svn делает перемещение выбранных директорий (ов) в новое место без папки .svn, поэтому он действует так, как будто это не рабочая копия, и оттуда вы можете добавить ее в свою рабочую копию.