是否应该有包含 mercurial subrepos 的区分大小写的目录名称?
我正在创建带有 2 个子存储库的瘦壳存储库 UberRepo:Foo
和BaR
.
如果我命名目录foo
,bar
(小写)并将以下内容放入.hgsub
文件中:
foo= foo
bar= bar
[subpaths]
https://bitbucket\.org/teamname/uberrepo/foo = https://bitbucket.org/teamname/foo
https://bitbucket\.org/teamname/uberrepo/bar = https://bitbucket.org/teamname/bar
然后一切(推,拉,克隆)就像一个魅力。问题是带有 subrepos 的目录是小写的。
如果我命名目录Foo
,BaR
那么无论我放入什么,.hgsub
我总是会得到相同的 404 错误,因为 hg 正在尝试推送https://bitbucket.org/teamname/uberrepo/Foo
- 基本上没有替换发生。
我可以做些什么来保留非小写目录名称,同时仍然能够让 hg 理解我的简单子存储库结构?
可能的解决方法: 我发现部分问题可能是 hg(基于 hgrc 设置)将用户名推送到 URL。它仍然没有回答为什么小写一切正常。但我只是下载了 hg 的代码,搜索了负责替换的代码,摆弄了一下,发现这可以通过使用正则表达式来解决:
foo= foo
bar= bar
[subpaths]
^https://([^/]*)/teamname/uberrepo/([^/]*)$ = https://\1/teamname/\2
这解决了这个问题。仍然不需要它,并且应该比在这种简单的情况下容易得多(就像输入确切的 url 一样简单)