0

我正在尝试将我的 subversion 存储库迁移到 Atlassian。Atlassian 要求导入的 repo 转储具有与每个项目密钥的项目同名的根目录。假设我在 Atlassian 中的项目键是 FOOBAR,那么 repo 转储应该包含所有修订版的 /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 ...

有任何想法吗?

4

2 回答 2

1

我认为这是因为转储文件不包含任何会创建 FOOBAR 目录本身的事务。

尝试svn mkdir file://$PWD/test/FOOBARsvnadmin load test.

为了给予应有的荣誉,我从http://dotslashstar.blogspot.com.au/2011/06/svn-hack-insert-missing-trunk-root.html得到了这个提示

于 2012-05-30T06:24:52.917 回答
0

以下对我有用。

使用关闭所有转换选项的文本编辑器:

  1. Node-path: trunk用替换所有实例Node-path: FOOBAR/trunk
  2. FOOBAR/trunk创建的修订版中,手动在添加的条目之前添加一个条目,该条目FOOBAR/trunk创建FOOBAR,FOOBAR/branchesFOOBAR/tags

我知道这在某些情况下可能不起作用,例如Node-path: trunk在文件本身中发生时。但它在这种情况下有效,并且应该适用于大多数其他情况。

于 2012-05-31T04:26:57.297 回答