我正在使用 hgsubversion 扩展将基于颠覆的项目转换为 mercurial。subversion repo 有一个目录,其中包含一个 svn:externals 属性,它引用了另一个项目中的两个文件。Hgsubversion 可以将目录外部转换为子存储库,但显然不能将文件引用外部。无论如何,我想远离外部/子存储库,所以我认为我可以将它们作为 svnsync 的一部分展平。
由于这将是一次性转换并且我不介意调整颠覆历史,我想我可以“取消引用”或取消外部化文件作为同步过程的一部分。我需要生成的镜像包含外部文件,而在包含文件的目录中没有属性“svn:external”。
我认为这可以作为提交挂钩来完成。但我不知道如何更改正在进行的提交,只是如何中止它。这个问题:SVN post-commit hook to modify externals有点到了,但答案主要是建议远离外部(我已经确信)。
当然,如果我对从 svn 迁移到 hg 的最佳方式做了太多假设,请随时提出替代建议。