我正在尝试将我的subversion repo迁移到Atlassian。 Atlassian要求导入的repo转储具有与每个项目键的项目同名的根目录。假设Atlassian中的项目密钥是FOOBAR,那么repo转储应包含/ FOOBAR用于所有修订。它还应该包含trunk,branches和tags子目录。
要重写Assembla svn转储,我这样做了:
cat foobar-assembla.dump | svn-dump-reloc "/" "FOOBAR" > foobar-atlassian.dump
然后我尝试了测试它:
svnadmin create test
cat foobar-atlassian.dump | svnadmin load test
这产生了一条错误消息:
svnadmin: File not found: transaction '0-0', path 'FOOBAR/trunk'
* adding path : FOOBAR/trunk ...
有什么想法吗?
答案 0 :(得分:1)
我认为这是因为转储文件不包含任何会自行创建FOOBAR目录的事务。
尝试在svn mkdir file://$PWD/test/FOOBAR
之前运行svnadmin load test
。
为了给予应有的信用,我从http://dotslashstar.blogspot.com.au/2011/06/svn-hack-insert-missing-trunk-root.html
得到了这个提示答案 1 :(得分:0)
以下对我有用。
使用文本编辑器关闭所有转换选项:
Node-path: trunk
的所有实例替换为Node-path: FOOBAR/trunk
。FOOBAR/trunk
的修订版中,在添加FOOBAR/trunk
创建FOOBAR
,FOOBAR/branches
和FOOBAR/tags
的版本之前手动添加条目我知道在某些情况下这可能不起作用,例如文件本身发生Node-path: trunk
时。但它在这种情况下起作用,应该适用于大多数其他情况。