gpt4 book ai didi

linux - 自动导入 Mercurial 存储库(例如 SVN Externals)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:06 26 4
gpt4 key购买 nike

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

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

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

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

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

我所做的是这样的:

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

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

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

最佳答案

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

  • 两个独立的仓库,
  • 不嵌套

协调两个组织(你的和嵌套的“subrepo”)的方法是拥有三个 repos

  • 父仓库(私有(private)仓库,因为可以推送到私有(private)仓库)
  • 项目(私有(private)项目,因为可以推送到私有(private)仓库)
  • 图书馆(公共(public)图书馆,因为可以推送到公共(public)仓库)

这将给出以下内容:

/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

这样,您就可以:

  • 你的两个 repo 根据需要分开
  • 两者之间的链接,以便能够按照您留下的确切引用取回这两个 repo 协议(protocol)(即您最后推送了每个 repo 协议(protocol))。

关于linux - 自动导入 Mercurial 存储库(例如 SVN Externals),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com