在 git svn clone 期间过滤删除?

Filter Deletes during git svn clone?

问题:旧版 svn 存储库有一个从 prod 服务器上的用户配置同步的目录。

有效同步:

是否可以在 git svn 克隆此 repo 期间过滤掉所有文件删除?

以及随后的 git svn 提取?

我不一定要过滤整个提交,只过滤删除文件的部分。

这意味着将后续添加文件更改为修改文件。

首先,如果您想更好地控制回购转换,您可能需要考虑使用 Reposurgeon 而不是 git-svn


由于 Git 的工作方式,SVN 中的这些不良行为的影响没有您想象的那么严重。

首先,Git本身没有"file history"的概念。没有像 SVN 或其他 VCS 系统中那样的 "file modify" 这样的东西。 Git 只记得一棵文件树。然后是另一棵文件树。等等

如果您将 HEAD 与 HEAD^^ 进行比较(其中 HEAD^ 是中间的 "deleted" 提交),您将得到的结果与您设法离开 "deleted" 完全修改。

此外,存储需求不会太大 - Git 存储整个对象并在制作包时比较它们的相似性,这与使用增量压缩的 SVN 不同(因此取决于文件历史) .与错过空树修订版相比,树 A + 空树 + 树 B(由大部分相同的文件组成)将占用非常小的额外 space。