Mercurial:两个独立的回购协议有些关联(是的,我感到困惑)
我有一个本地存储库,我们称之为本地存储库。一个是实际的程序。这是一个安卓程序,以防出于某种原因它很重要 我有一个远程存储库,我们称之为EXT。EXT有点像一个库,由一个人使用 其中一个有一个复杂的目录结构,由android授权。主要来源于src/bla/bla/ONE。因为其中一个使用EXT,所以我必须在该目录旁边创建另一个目录,即src/bla/bla/EXT 我想我希望将它们分开放在两个存储库中,但我需要它们实际位于相同的目录结构中才能编译一个Mercurial:两个独立的回购协议有些关联(是的,我感到困惑),mercurial,cvs,repository,Mercurial,Cvs,Repository,我有一个本地存储库,我们称之为本地存储库。一个是实际的程序。这是一个安卓程序,以防出于某种原因它很重要 我有一个远程存储库,我们称之为EXT。EXT有点像一个库,由一个人使用 其中一个有一个复杂的目录结构,由android授权。主要来源于src/bla/bla/ONE。因为其中一个使用EXT,所以我必须在该目录旁边创建另一个目录,即src/bla/bla/EXT 我想我希望将它们分开放在两个存储库中,但我需要它们实际位于相同的目录结构中才能编译一个 目前,我只是创建了一个符号链接来实现这一点,但
目前,我只是创建了一个符号链接来实现这一点,但我想知道是否有更好的方法来实现这一点,即使用一些hg功能。子存储库非常适合这样做。请看一看。子存储库非常适合这一点。看看。使用。例如:
$ git init ONE-proj
$ cd ONE-proj
$ mkdir -p src/bla/bla/ONE
$ ... # commit your initial project files for ONE
$ echo src/bla/bla/EXT = /path/to/hg/repository/EXT > .hgsub
$ hg add .hgsub
$ hg clone /path/to/hg/repository/EXT src/bla/bla/EXT
$ hg commit
使用。例如:
$ git init ONE-proj
$ cd ONE-proj
$ mkdir -p src/bla/bla/ONE
$ ... # commit your initial project files for ONE
$ echo src/bla/bla/EXT = /path/to/hg/repository/EXT > .hgsub
$ hg add .hgsub
$ hg clone /path/to/hg/repository/EXT src/bla/bla/EXT
$ hg commit
我不是这方面的专家,但我认为子存储库在这种情况下不起作用 您有两个具有相同深度嵌套目录结构的项目:
Compile Project
/src
/bla
/bla
/ONE
/EXT
项目一:
ONE
/src
/bla
/bla
/ONE
项目分机
EXT
/src
/bla
/bla
/EXT
编译这些项目时,需要以下结构:
Compile Project
/src
/bla
/bla
/ONE
/EXT
或者类似的东西-基本上两个源树都合并在一个src下
由于您无法签出存储库的一部分,因此无论您在何处创建子存储库,都将获得完整的EXT目录。因此,如果您在一个次级回购旁边进行次级回购,您将得到:
Combined Project
/src
/bla
/bla
/ONE
/src
/bla
/bla
/EXT
你想要的是一个不存在的部分克隆
我认为操作系统链接是最好的选择
希望这有帮助。我不是这方面的专家,但我认为子存储库在这种情况下不起作用 您有两个具有相同深度嵌套目录结构的项目:
Compile Project
/src
/bla
/bla
/ONE
/EXT
项目一:
ONE
/src
/bla
/bla
/ONE
项目分机
EXT
/src
/bla
/bla
/EXT
编译这些项目时,需要以下结构:
Compile Project
/src
/bla
/bla
/ONE
/EXT
或者类似的东西-基本上两个源树都合并在一个src下
由于您无法签出存储库的一部分,因此无论您在何处创建子存储库,都将获得完整的EXT目录。因此,如果您在一个次级回购旁边进行次级回购,您将得到:
Combined Project
/src
/bla
/bla
/ONE
/src
/bla
/bla
/EXT
你想要的是一个不存在的部分克隆
我认为操作系统链接是最好的选择
希望这能有所帮助。+1用于次级回购。这里有一个关于hg次级回购的例子。次级回购+1。这里有一个关于hg subrepos的例子。这个有用吗?你会不会在src/bla/bla/ONE中有一个,在src/bla/bla/ONE/src/bla/bla/bla/EXT中有一个EXT?这些命令都是在存储库的根目录下执行的,所以一切都与之相关。这行吗?你不会在src/bla/bla/ONE中有一个命令,在src/bla/bla/ONE/src/bla/bla/EXT中有一个EXT吗?这些命令都是在存储库的根目录下执行的,所以一切都与之相关。哦:谢谢。顺便说一句,它甚至比这更复杂:一个项目还包括树上的文件。哦:谢谢。顺便说一句,它甚至比这更复杂:一个项目还包括树中上层的文件。