是否可以将Mercurial子路径路径从绝对路径更改为相对路径

最初我的subrepo是用.hgsub中的绝对URL定义的,现在导致了一些麻烦.它使得“友好的独裁者”工作流程变得不可能,因为我想使用一个中间服务器,用户从中间服务器克隆其工作副本.然后我将更改提取到中间服务器,然后将它们推送到主存储库(中间服务器也是持续集成主机,因此我不会直接将内容提取到主服务器).绝对路径阻止了这一点,因为克隆的repo将被直接推送到master.

现在的问题是,当我尝试推送我在.hgsub文件中所做的更改时,我的hg服务器会发出404错误.以下是我所做的更改的示例

# original subrepo definition
common = http://hgserver/disp/common
# and after the change
common = common

这不起作用,它会发出以下错误

$hg push
pushing to http://hgserver/disp
pushing subrepo common
abort: HTTP Error 404: Not Found

有可能以这种方式更改subrepo配置还是我必须重新创建整个存储库?

最佳答案
是的,它应该是可变的(并且你是对的,因为亲戚有更好的工作流程),但是,相对url路径被认为是相对于.hgsub所在的repo的hg根目录 – 而不是你碰巧正在推动(来自.hg / hgrc在路径部分的聋人入口.

这是一个非常正常的subrepo布局:

on server http://hgserver/disp/main
    http://hgserver/disp/common # the "common" repo
    http://hgserver/disp/main # the main repo
        http://hgserver/disp/main/.hgsub # contains "common=../common"

然后在克隆之后一切正常工作,同样的hgsub在服务器上工作正常.

有很多堆栈溢出问题,人们在相关的subrepo设置中浏览最佳布局,虽然我没有尝试从一个切换到另一个,但我认为如果你做“旁边”风格的子回购“ ../sibling“我在上面展示它会工作得很好.

转载注明原文:是否可以将Mercurial子路径路径从绝对路径更改为相对路径 - 代码日志