【问题标题】:Importing a Mercurial repository automatically (e.g. SVN Externals)自动导入 Mercurial 存储库(例如 SVN Externals)
【发布时间】:2010-12-27 14:50:54
【问题描述】:

我有一个基于 CodeIgniter 开发的项目。该项目的主要部分是我正在创建的一个私有系统,但我想将它添加到源代码控制中,以获得所有相关的好处。现在我正在使用 Mercurial,所以我完成了整个 hg init 位,所以我已经设置了存储库。

现在,我做的一件事是为我在这个项目中使用的 CodeIgniter 创建一个库。现在我想打开这个库,所以我需要一个单独的 repo。

对于不熟悉 CodeIgniter 库开发的任何人,这里有一个参考:

application
  /config <- configuration files
  /libraries <- library logic in here

现在我可能会在这个项目的过程中开发更多的库,所以我不能只是将一个 repo 转储到应用程序文件夹中而不将它们全部聚集在一起。

我做的是这样的:

dev/ci/library <- library here
dev/project <- project here

现在,在这两个文件夹中,我创建了一个存储库。我想做的是让项目存储库自动引用库存储库,这样我就可以拥有一个私有和一个公共存储库,正如我之前解释的那样。

我读过,这样做的主要方法是使用子存储库,但我只能找到嵌套存储库的示例(我发现无论如何都不清楚)。如何让它引用另一个存储库,如 svn:externals?

【问题讨论】:

    标签: linux version-control mercurial subrepos


    【解决方案1】:

    您是对的,Mercurial 中的子存储库(或 Git 中的子模块)基于 嵌套组织
    但在您的具体情况下,您需要:

    • 两个独立的存储库,
    • 未嵌套

    协调两个组织(您的组织和嵌套的“子存储库”)的一种方法是拥有三个存储库

    • 父仓库(私有仓库,如可以推送到私有仓库)
    • 项目(私人项目,如可以推送到私人仓库)
    • 图书馆(公共图书馆,如可以推送到公共仓库)

    这将给出以下内容:

    /dev
      .hg (private repo)
      .hgsubs (declare the two nested repos 'project' and 'ci/library')
      project
        .hg (private repo for your project)
        config
        .hgignore (for ignoring anyhting from libraries)
        libraries (private directory, not version)
          (symlink to /dev/ci/library)
      ci
        library
          .hg (public repo 
    

    这样,你保持:

    • 您的两个仓库根据需要分开
    • 两者之间的链接,以便能够在您留下它们的确切参考处取回这两个存储库(即您最后一次推送这些存储库中的每一个)。

    【讨论】:

    • 啊哈,我想我有一个绝妙的主意,但必须去刷一下我的符号链接。绝对标记为答案。
    • 是的,如果我像你说的那样设置它,然后做一个从 /dev/project 到 /www/project 的符号链接,它可以让我进行调试测试,然后让我更容易稍后迁移到主/调试版本(我应该,但永远不会这样做)。
    • @dawmail333:我提出的唯一问题是操作系统必须支持符号链接,这将排除 Windows。但在你的情况下,这是可行的。
    • @VonC Vista 及更高版本可以符号链接,仅供参考。
    • @dawmail333:对! howtogeek.com/howto/windows-vista/…en.wikipedia.org/wiki/NTFS_symbolic_link ...除了:“Windows Vista 中的默认安全设置不允许非提升的管理员和所有非管理员创建符号链接”并且我们在工作的工作站上不是管理员 :(跨度>
    【解决方案2】:

    在 Mercurial 1.3 中实现,这里是 instructions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多