注意:由于我是新手,他们不会让我发布链接,这意味着所有配置文件都会有不正确格式的网址。这只是为了解决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@
放在开头。
非常感谢任何帮助。 :)
答案 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
更多信息可在以下网址找到:
hg help hgrc
的subpaths
部分:以下摘自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/".