2017-03-10 78 views
2

我正在从svn存储库迁移到git。 这个svn仓库有svn-externals,要保存在svn仓库中。这些外部版本在历史记录中进行版本控制和标记,并且是只读的。 如何正确迁移并在新的git存储库中正确设置svn-externals?从svn迁移到保持svn-externals的git

我正在查看“git svn propset”,git submodules,subtree merges。但是我怎样才能建立这样的存储库?

+0

我想你不能做“git svn propset”跟踪svn:外部,与git,对不对? –

+0

'git svn propset'在Git中没有做任何事情,它只是在跟踪的SVN仓库中设置SVN属性。您可以使用它来管理SVN回购跟踪的'svn:externals',但它对Git克隆没有任何影响。 – Vampire

回答

0

另外,我建议: 使用这个简单的老python脚本的修改版本,即工作: https://github.com/eneroth/git-externals 该脚本会检查出所有的svn:以前在子目录中所述的在.gitexternals的外部文件 问题是检查out版本是头,而不是git仓库的一部分

我会使用一个单独的文件来存储所有svn版本。这个文件将被存储在git中。因此,每次我们进行更新时, 此文件将使用最新的提交进行更新。脚本中的选项将允许将该文件更新到最新版本的外部。 将修改脚本以下载存储在此文件中的版本。 在这种情况下,分支和标签的版本也会固定为外部。 对于迁移的历史数据,不确定这种方法是否可行。

我会在子模块的情况下使用这个脚本,它非常灵活。但在这种情况下,我们将所有的外部镜像git