3

git blame没有向我展示重新组织布局的 SVN 存储库的所有历史记录。

我正在使用 git-svn 访问 SVN 存储库。SVN 存储库曾经有一个结构,其中包含大量文件夹树来保存许多项目。去年,我将布局重新组织并扁平化为更标准的主干/标签/分支布局。结果是存储库中的所有文件都在 2010 年 5 月 17 日被移动。

使用来自 Eclipse 的 subclipse SVN 客户端,我可以执行Team->Show Annotation,它会按我的预期显示文件的历史记录 - 2009 年更改的代码行正确地用作者/日期/签入注释进行了注释。

但是,git blame在我使用 git-svn 克隆的 git 存储库中,它并没有那么有用。对于 2010 年 5 月 17 日之前修改的所有代码行,注释为:我 / 日期 2010 年 5 月 17 日 / 注释“正在重组存储库...”。

我假设信息仍然存在,有没有办法git blame显示它?我非常投机地尝试git blame -C -C -C...没有成功。

4

1 回答 1

0

你确定旧的提交完全出现在 git repo 中吗?也许你的 svn 重组太大了,git-svn 无法跟进。找到5月17日之前的svn修订版,然后git svn find-rev r12345用那个数字找到对应的git hash,如果有的话。然后 git checkout 该哈希并查看您感兴趣的文件是否在其中。

如果你告诉 git-svn 你的 repo 使用了“标准”trunk/branches/tags 布局,它可能无法理解其他布局。您可能需要分两个阶段重做 git-svn 导入:一个用于您的旧布局,然后再次用于您的新布局。您可以使用 git svn fetch 的 -r 参数来实现这一点,以仅获取给定范围的修订。

于 2012-02-18T09:29:26.493 回答