如何正确添加子存储库



我有一个名为main的存储库,在它下面有许多子存储库。最初创建main超级存储库时,我已将现有的存储库复制到main文件夹中,然后添加了.hgsub文件以指示子存储库的名称。

现在,这个main文件夹位于我们公司的文件服务器上,由 hgService 提供服务,我们需要向其添加新的存储库。在广阔的绿色世界中,这如何无缝完成?

如果我将main克隆到我的本地机器,则hg init newrepo ,并将其复制到克隆的main中,并将正确的条目添加到我可以提交但无法推送.hgsub。它给了我一个错误,就像http error 404 path not found.好的,很公平,所以我将条目添加到hgServiceweb.conf文件中,然后重新启动。现在我收到一个不同的错误,例如subrepository 'newrepo' doesn't exist好吧!我正在尝试添加它!

所以我最终崩溃了,不得不 RAdmin 到服务器,手动创建一个 newrepo,将其添加到 hgService 提供的main存储库中并提交更改。这对我来说似乎非常肮脏,让事情变得更加困难的是服务器工作目录的状态已经过时了大约 6 个月,我必须解决无数问题才能将其更新到最新版本。

必须有更好的方法来做到这一点.. 我不能让用户每次需要新存储库时都进入 co. VCS 服务器?对吧?

不幸的是,

没有 — 添加新的子存储库涉及在服务器上创建它,您无法将新存储库hg push到服务器上。因此,如果在服务器上创建存储库需要登录到服务器,那么添加子存储库将需要相同的内容。

Mercurial 附带的hgweb脚本(我将通过 hgService 引用)没有允许用户创建新存储库的内置机制。假设新存储库是通过其他方式创建的,然后hgweb将通过HTTP提供只读视图,并允许用户使用Mercurial推送/拉取存储库。

Mercurial还有其他Web前端。我最熟悉的是卡利地亚。它使您可以直接从浏览器创建/删除存储库,因此您不再需要登录到服务器。这是一种比使用普通hgweb更好的管理存储库的方法。

最新更新