在hcurwebdir使用sub-repo困难的mercurial

时间:2010-05-27 21:02:30

标签: apache mercurial

好吧,我让Mercurial和子回购陷入僵局......以下是发生的事情: 我有一个很大的mercurial repo,我通过apache和hgweb.cgi服务器。 由于仓库的大小,我决定转移到子仓库并与hgwebdir.cgi分享。

使用带有filemap选项的转换工具,我创建了几个子存储库:

/main/foo
/main/bar

很好地为.hgsub:

中的子存储库创建了一个条目
foo = foo
bar = bar

并设置hgwebdir.cgi以显示$ / **作为根文件夹。

现在当我去我的网站(foo.com/hg)时,我看到我的子存储库中有一个空的存储库(没有名称,没有内容),但我无法下载它(存档位置未知): empty_repo http://img707.imageshack.us/img707/8237/emptysubrepo.png

在我添加新的子存储库之前,这一切都很好。 我无法将新的.hgsub文件推送到foo.com/hg,因为该页面由hgwebdir提供。

我目前唯一可以使用的方法是从hgwebdir切换到hgweb,提交.hgsubste并切换回hgwebdir。

有人为这样的混乱设置好吗?

2 个答案:

答案 0 :(得分:0)

从我在https://www.mercurial-scm.org/wiki/PublishingRepositories#multiple

上读到的内容
  • 键(在左侧)和值(在右侧)都是文件系统路径
  • 键应该是值的前缀,并从值中“减去”,以生成每个存储库的URL路径

我猜测的是,在你的hgweb(dir)配置中,你为一个集合指定了相同的值,可能是键,所以在减法期间,它最终会出现一个空白名称,无法找到它

当我使用[collections]将/ a / full / path = / a / full / path直接设置为repo时,它也会空白,因为它正在将该文件夹作为repo读取,因为它是一个repo在我从集合条目的根目录中删除.hg文件夹和.hgsubs以及所有子目录后,所有子文件夹都开始正常显示,而不是每个子目录都是一个单独的存储库。

我最初用于[paths],/ path / to / my / project = / path / to / my / project,因为这是一个引用的存储库,它会从键中减去该值,让你离开再一次使用'',而不是使用project = / path / to / my / project,它就是'project'。

希望这些网址或这些说明能让你摆脱困境!

答案 1 :(得分:0)

在网络服务器上,你的主要及其子版本应该显示为兄弟姐妹 - 而不是主要内部的子版本。

  • 主要
  • ASCII
  • AlignDistribute

.hgsub中的网址应如下所示:

ASCII = ../ASCII
AlignDistribute = ../AlignDsitribute

然后你就可以推/拉到http://foo.com/hg/Main,当你克隆它时,克隆/更新将自动附加并克隆单独的子目录。