我正在尝试将我的subversion代码库迁移到Atlassian。Atlassian要求导入的repo转储具有与每个项目关键字的项目名称相同的根目录。假设我在Atlassian中的项目密钥是FOOBAR,那么repo dump应该包含所有修订的/FOOBAR。它还应该包含主干、分支和标记子目录。
为了重写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 ...有什么想法吗?
发布于 2012-05-31 12:26:57
下面的方法对我很有效。
在关闭所有转换选项的情况下使用文本编辑器:
Node-path: trunk的所有实例替换为创建FOOBAR/trunk的修订版,手动在添加创建FOOBAR、FOOBAR/branches和FOOBAR/trunk的FOOBAR/trunk的条目之前手动添加条目我知道这在某些情况下可能不起作用,比如当Node-path: trunk出现在文件本身中时。但它在这种情况下有效,在大多数其他情况下也应该有效。
发布于 2012-05-30 14:24:53
我认为这是因为转储文件不包含任何将创建FOOBAR目录本身的事务。
尝试在svnadmin load test之前运行svn mkdir file://$PWD/test/FOOBAR。
为了证明这一点,我从http://dotslashstar.blogspot.com.au/2011/06/svn-hack-insert-missing-trunk-root.html那里得到了这个技巧
https://stackoverflow.com/questions/10788526
复制相似问题