Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial提交子文件夹中的子存储库_Mercurial_Mercurial Commit - Fatal编程技术网

Mercurial提交子文件夹中的子存储库

Mercurial提交子文件夹中的子存储库,mercurial,mercurial-commit,Mercurial,Mercurial Commit,我有文件/目录结构: main/.hg main/subrepo/.hg main/subrepo1/.hg 我有一个包含此类内容的.hgignore文件 .hg 最后,我想在“main”存储库中进行提交,该存储库将包含其中的所有文件,包括main/subrepo和main/subrepo1中的所有文件,并且不包括文件夹main/subrepo/.hg和main/subrepo1/.hg(因此,将提交主文件夹中的所有文件,不包括其中的.hg文件夹)。但Mercurial跳过了main/sub

我有文件/目录结构:

main/.hg
main/subrepo/.hg
main/subrepo1/.hg
我有一个包含此类内容的.hgignore文件

.hg

最后,我想在“main”存储库中进行提交,该存储库将包含其中的所有文件,包括main/subrepo和main/subrepo1中的所有文件,并且不包括文件夹main/subrepo/.hg和main/subrepo1/.hg(因此,将提交主文件夹中的所有文件,不包括其中的.hg文件夹)。但Mercurial跳过了main/subrepo/*和main/subrepo1/*。它不包括要完全提交的子文件夹/子repos。如何修复此问题?

我猜您只是创建了一些嵌套存储库,但没有将它们正确链接为子存储库

确保
main
存储库的根目录中有一个名为
.hgsub
的文件。创建文件,添加以下内容,然后将文件添加并提交到主存储库:

subrepo = https://path-to-subrepo/
subrepo1 = https://path-to-subrepo1

如果子存储库不指向某个远程服务器,您当然会使用本地路径。

您的子存储库是否正确链接到主存储库,还是只有嵌套的存储库?换句话说,主文件夹中是否有.hgsub文件?main、main/subrepo、main/subrepo1应该是独立的存储库,例如,main和main/subrepo应该独立地跟踪main/subrepo/test.txt中的文件更改,main和main/subrepo1应该独立地跟踪main/subrepo1/test.txt中的文件更改,etcA子存储库是独立的,是的。但是,子存储库的目的是获取该独立存储库并在另一个存储库中重用它。父存储库可以选择下拉在子存储库的远程/中心位置所做的更改,或者将其保持在特定版本(防止强制导入中断的更改)。本质上,子存储库是在项目中保留第三方库的一种替代策略,无需保留对子存储库或库的编译版本的外部引用(例如)。有些子存储库指向远程服务器,有些则不指向远程服务器。我的目标是使用主存储库作为其中所有文件/文件夹的备份(不包括.hg文件夹,因为它们不需要备份)。一天一次,我想做一件事;汞推;通过cron。我不想使用任何备份软件,因为hg拥有我所需要的一切。我所做的解决方案是将所有.hg文件重命名为.hg_gg文件,将.hg_gg添加到.hgignore,并在提交后将rename all推回。但我希望找到不重命名文件夹的方法。听起来像是对子存储库的用途的轻微误用(滥用?)。.hg文件对于保存子存储库的历史记录是必要的,以防您决定对它们进行更改。它们实际上是为了允许与其他人共享存储库而设计的,因此克隆父存储库可以确保子存储库也被克隆,并且达到父存储库所期望的级别。