此问题与this one和this one类似,但情况稍微复杂一些。git-svn如何与svn版本库改变布局?
几年前我开始使用私人svn存储库(我主要用于共享配置文件之类的各种机器之间)。我并不太在意仓库的布局(分支,去哪等),所以它随着时间的推移发生了很大的变化。这当然是一个错误,但现在已经太晚了。最近,我已经将它迁移到更标准的svn trunk/branches/tags布局,主要是使用svn move命令,但是旧的历史记录当然仍然存在于存储库中(坦率地说,这有点乱) 。
我现在想永久地将其转换为git存储库。我尝试过使用git-svn,但它似乎只处理遵循一致的trunk /分支/标记约定的情况(是的,你可以提供其他名称,但每个只有一个,它就会出现)。我的存储库的很多历史记录都有效地存储在存储库的根目录中,例如,标记为/和分支/为子目录。
处理所有这些问题的最佳方法是什么?理想情况下,我希望git仓库最终能够以某种方式访问所有历史记录,即使分支和标记在git中没有正确表示为第一级概念。
更具体地说,svn-git如何处理它所提供的trunk/branches/tags子目录之外的文件?到目前为止,我的观察结果是,它有时会错过它们(绝对不行),有时会将它们添加到新的存储库中。
任何想法将不胜感激。
你问它会如何表现,也说你已经试过了。您观察到的不良行为的具体示例会很有帮助。 Git通常非常善于处理复杂的合并,例如,在同一提交中更改和移动子树。 – 2009-07-20 18:26:48