所以,问题是:
假设我们有一个非常古老的Kallithea安装,有一大堆存储库,经过5年的密集开发,它变得臃肿起来,到处都是遗留和实验的东西,结构不一致等等。我们决定将所有东西更新到现代版本,删除所有遗留和未使用的东西,并在服务器上构建一个新的存储库目录结构。
基本上,问题是:
DIRECTORY1 [ PROJ1 SUBPROJ1 ] //SUBPROJ1 is a subrepo for PROJ1, .hgsub approves.DIRECTORY2 [ PROJ2 ] // SUBPROJ1 is a subrepo for PROJ2 as well!正在被重新加工为
COMMON [ SUBPROJ1 ]DIRECTORY1 [ PROJ1 ]DIRECTORY2 [ PROJ2 ]因此,为了更新支持新目录结构的项目PROJ1和PROJ2,我们需要更新这些项目及其所有分支的.hgsub。这将使它们以前的所有修订都处于“挂起”状态--没有办法直接克隆它们,在更新它们时肯定会出现一些问题,等等。
是否有一种通用的方法来处理这些情况,以修正以前的所有修订?
发布于 2021-01-16 22:12:27
.hgrc文件有一个子路径选项,可以为您工作:
子路径 如果远程服务器更改名称或临时不可用,则Subrepository源URL可能会失效。本节允许您定义表单的重写规则: = where模式是匹配子存储库源URL的正则表达式,替换是用来重写它的替换字符串。组可以在模式中匹配并在替换中引用。例如: )-hg/ = http://hg.server/\1/ 将
http://server/foo-hg/重写为http://hg.server/foo/。 相对子存储库路径首先是绝对的,然后重写规则应用到完整(绝对)路径上。如果模式与完整路径不匹配,则尝试仅在相对路径上应用该模式。这些规则按定义顺序应用。
https://stackoverflow.com/questions/65748363
复制相似问题