如何使用.hgsub中的[subpaths]部分重新映射本地子参数以便在bitbucket中使用

时间:2011-11-14 21:58:02

标签: mercurial bitbucket

  
    

注意:由于我是新手,他们不会让我发布链接,这意味着所有配置文件都会有不正确格式的网址。这只是为了解决stackoverflow的限制,我在实践中使用了正确的URL。

  

我试图设置一个subrepo,我们称之为A / B.所以克隆工作正常,我想要一个正常的相对路径将它放在存储库中,所以逻辑上我有.hgsub

A/B = A/B

然而,当尝试将其推入bitbucket时,我得到通常的404(未找到)错误,因为在bitbucket B上不能是本地的,并且实际上是另一个项目(http s://username@bitbucket.org/username/B)

然后我说,好吧只是为了让bitbucket工作我可以放.hgsub

A/B = https://username@bitbucket.org/username/B

但是,我最近发现,据说这里有一个解决方法:https://www.mercurial-scm.org/wiki/Subrepository您使用[subpaths]部分,以便本地克隆工作正常,但bitbucket将请求项目的特殊路径。

所以我试着复制他们的指示。 .hgsub:

A/B = A/B
[subpaths]
https://username@bitbucket.org/username/project/A/B = https://username@bitbucket.org/username/B

但我得到了同样的404错误。据推测,只要它看到https://username@bitbucket.org/username/project/A/B,它就会重新映射到后者https://username@bitbucket.org/username/B,这将起作用。但是,情况似乎并非如此。我也试过没有把username@放在开头。

非常感谢任何帮助。 :)

2 个答案:

答案 0 :(得分:3)

原来我认为我正在一个不同的回购测试,所以它没有抓住比赛。这是所有感兴趣的人的工作配置:

.hgsub:

  

A / B = A / B

     

[子路径]

     

bitbucket \ .org / username / projectname / A / B = bitbucket.org/username/B

答案 1 :(得分:0)

您的subpaths配置似乎不正确。左侧的字符串必须是与.hgsub中的条目匹配的模式。我想你想要的东西:

[subpaths]
A/B = https://username@bitbucket.org/username/B

更多信息可在以下网址找到:

以下摘自hgrc帮助:

  

定义子存储库源位置重写表单规则:

  <pattern> = <replacement>

Where "pattern" is a regular expression matching the source and
"replacement" is the replacement string used to rewrite it. Groups can be
matched in "pattern" and referenced in "replacements". For instance:

  http://server/(.*)-hg/ = http://hg.server/\1/

rewrites "http://server/foo-hg/" into "http://hg.server/foo/".