将 svn 从 Assembla 迁移到 Atlassian



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

有什么想法吗?

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

尝试在svnadmin load test之前运行svn mkdir file://$PWD/test/FOOBAR

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

以下内容对我有用。

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

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

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

最新更新