【问题标题】:How do you add a subrepository properly如何正确添加子存储库
【发布时间】:2012-08-17 23:59:57
【问题描述】:

我有一个名为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,手动创建一个新存储库,将其添加到由hgService 提供服务的main 存储库并提交更改。这对我来说似乎非常肮脏,更困难的是服务器的工作目录状态已经过时了大约 6 个月,我必须解决无数问题才能将其更新到最新版本。

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

【问题讨论】:

    标签: version-control mercurial subrepos


    【解决方案1】:

    很遗憾,不——添加一个新的子存储库涉及在服务器上创建它,你不能hg push一个新的存储库到服务器上。因此,如果在服务器上创建存储库需要登录到服务器,那么添加子存储库也需要同样的操作。

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多