【问题标题】:Can I use Mercurial for multiple projects (in an approximately the same way as SVN)?我可以将 Mercurial 用于多个项目(与 SVN 大致相同)吗?
【发布时间】:2010-07-19 15:31:42
【问题描述】:

我有一个用于所有项目的私有 SVN 存储库。它会定期备份,当我需要一点点 sn-p 代码时,我喜欢能够通过网络浏览它。

现在,我想迁移到更现代的源代码控制平台(例如 Git 或 Mercurial),但我也希望将我的所有项目集中在一个地方。

有没有办法使用 Mercurial 在同一位置存储多个存储库?

个人 Github 之类的?

或者,我是否应该继续使用SVN作为后备存储,并使用Mercurial进行推拉?

【问题讨论】:

    标签: svn mercurial


    【解决方案1】:

    Mercurial 和 Git 通常面向每个项目 1 个存储库的模型。但是,您仍然可以将一堆存储库全部组合在一个目录中它们自己的子目录中,有效地将它们大部分放在同一个位置,并通过网络服务器为整个顶级目录提供服务。

    【讨论】:

    • 我能否即时创建新的存储库?或者,我是否需要登录服务器并执行hg init?
    • hg 已分发。 “服务器”这个词没有任何意义,除了开发者惯例强加的含义。
    • @Mark:我完全清楚这一点。如果您阅读我的问题,您会看到我的服务器用例。
    • 您可以通过 ssh:// 但不能通过 http:// 远程创建新的存储库。如果您的 repo 仅在 vi hgweb 中可用,那么您需要登录并 hg init。
    【解决方案2】:

    简短的回答是否定的,DVCS 存储库并没有真正设置为用于多个项目。

    在 Kiln Stack Exchange 上查看我在Should I use more than one repository? 上的答案以获得长版本。

    如果这只是您的个人代码,而您并没有真正与其他人一起工作,您可以使用“学生和启动版”免费将它们放在Kiln(由 Mercurial 支持)上。 (完全披露:我是 Kiln 的开发人员。)BitBucket 也是一个不错的选择。

    【讨论】:

    • 我的问题是一种自动创建多个存储库的方法,以及一种通过 HTTP 访问所有这些的方法。
    【解决方案3】:

    作为替代方案,您可以使用 hg-app http://hg.python-works.com 它是完全用 pylons 编写的 hgwebdir 替换。

    • 有自己的中间件来处理 mercurial 协议请求,每个请求都可以被记录和验证 + 线程性能不太可能是 hgweb
    • 每个项目的完全权限读/写/管理访问,即使是在善变的请求下
    • mako 模板让您自定义应用程序的外观和感觉。
    • diffs 注释和源代码都由 pygments 着色。
    • mercurial 分支图和 yui-flot 驱动的图
    • 用于执行用户/权限管理以及存储库管理的管理界面。
    • mercurial web 的其他设置(可从管理面板编辑的挂钩!)还可以管理路径、存档、远程消息
    • 备份脚本可以备份整个应用程序并通过 scp 将其发送到所需位置
    • 在内置数据库中设置项目描述和信息,以便轻松进行非文件系统操作
    • 关于存储库代码的完整搜索文本
    • 在推送/回购管理中添加了无效缓存,以实现高性能和始终保持最新数据。
    • rss / atom feeds,gravatar 支持
    • 基于 pylons 1.0 / sqlalchemy 0.6

    【讨论】:

      【解决方案4】:

      您可以像这样使用 clone-to-remote 通过 ssh 创建新的远程存储库:

      hg init
      hg clone ssh://remote//path/to/repos
      

      如果您有 hgweb 设置,之后您可以通过 http 浏览和推送。

      我wrote a cheesy little script 展示了如果 ssh 是可撤消的,那么通过 http 启用远程创建是多么容易,但是如果没有一些新的配置或软件,你会发现如果没有 shell 访问权限,你将无法创建新的远程存储库某种。

      【讨论】:

      • 我需要什么服务器软件才能执行这样的操作?我可以在 Windows 上执行此操作吗?
      • 对于 ssh://,您需要在系统上运行 ssh 服务器,但如果您已经在使用 ssh:// URL,那么您就拥有了所需的东西。我写的那个小 .cgi 可以在几秒钟内用 IIS 所具有的任何类 CGI 语言完成。在 Windows 上可以完成任何事情,但通常都是非常麻烦的事情。
      【解决方案5】:

      是的,不是的。请参阅hgweb.cgi 文件。

      这是网站上Dreamwidth project with multiple repos 的链接(请注意,这不是默认格式,但这是我能想到的唯一格式。

      哦 - 原来 Debian 使用 hg 并且有一个面向网络的 cgi - http://hg.debian.org/hg/

      hgweb 的默认设置将为您提供 - 对于您的所有存储库 - 版本树、提交日志、推/拉功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-22
        • 2018-04-07
        相关资源
        最近更新 更多