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