从SVN导入Git时保留移动文件的历史记录



给Git大师的问题。我面临以下问题:我需要将一个带有历史记录的项目从 SVN 导入到 Git。我这样做的方式:git svn clone "http://server/trunk/path/to/my/project"。历史正在导入精细...直到该特定文件从另一个位置移动到其当前位置为止。当然,如果我使用更高的网址,例如包括旧位置和新位置,我可以使用旧父文件夹的历史记录对其进行跟踪。问题是我无法导入具有旧文件位置的项目,因为它不在我的所有权范围内。有没有办法在仅导入具有文件新位置的项目时保留文件移动点之前的历史记录?

对于一次性导入,您可以尝试 SubGit。

如此线程所示:

SubGit 仅导入/同步在 SVN 设置页面上指定的那些分支和标签。

因此,为了保留trunk文件夹所有先前位置的历史记录,请将所有这些位置包含在trunk&branches选项中,如下所示:

Subversion URL = http://host/svn/repo
Trunk = dir3:refs/heads/master
Branches = dir2:refs/heads/old_master; dir1:refs/heads/even_older_master; branches/*:refs/heads/*
...

指定这些设置后,SubGit 应该能够加入所有三个位置的历史记录。

不过,这将假设"其他位置"位于同一存储库中。

最新更新