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 - Fatal编程技术网

只从mercurial中检出一个目录?

只从mercurial中检出一个目录?,mercurial,Mercurial,如何仅从mercurial存储库中检出子目录?看来我只能查看整个存储库。不,你不能。请参见此处的讨论: 你做不到。该功能已规划,但尚未实施。前面的人给了一个很好的链接,指向你可以阅读的地方 现在,您应该非常小心地将事物分割开来,以便存储库是一个相当小的单元,在整体管理中具有逻辑意义。“拥有”功能的存在可能会帮助您组织和管理事物,直到该功能存在。下一个最好的方法是使用此处讨论的转换扩展: 过滤Mercurial存储库以获取现有存储库的子集也很有用。例如,要将存储库foo的子目录子文件夹转换为具有

如何仅从mercurial存储库中检出子目录?看来我只能查看整个存储库。

不,你不能。请参见此处的讨论:


你做不到。该功能已规划,但尚未实施。前面的人给了一个很好的链接,指向你可以阅读的地方


现在,您应该非常小心地将事物分割开来,以便存储库是一个相当小的单元,在整体管理中具有逻辑意义。“拥有”功能的存在可能会帮助您组织和管理事物,直到该功能存在。

下一个最好的方法是使用此处讨论的转换扩展:

过滤Mercurial存储库以获取现有存储库的子集也很有用。例如,要将存储库foo的子目录子文件夹转换为具有其自身生命周期的存储库(同时保留其完整历史记录),请执行以下操作:


这是同一个问题,这里和那里的答案都是一样的。我来总结一下:

  • “”
  • “”(但将无法再将更改从它推送到原始存储库中)
  • “将您的主存储库转换为多个存储库(使用上述方法)”(但必须使用子存储库被视为一种选择)
  • “”(需要安装Facebook的
    sparse.py
    第三方扩展)
  • “”(在客户端和服务器上需要Google的第三方扩展)

尽管有术语方面的限制(最初的问题是只询问“签出”,这只能在Mercurial中克隆后发生,但Subversion并没有真正的克隆概念)。可以说,窄带Hg解决方案最接近理想的解决方案。

总有一天该功能会存在。希望如此!但是考虑到hg和git都是如何存储存储库历史的,这不太可能很快发生。事实上,从我所知道的Mercurial与git的区别来看,在Mercurial中实现它应该更容易。尽管我所知道的所有方法仍然会导致清单文件比严格要求的要大得多,但您应该注意到底是什么构成了存储库。
echo include subfoo > /tmp/myfilemap
echo rename subfoo . >> /tmp/myfilemap
hg convert --filemap /tmp/myfilemap /path/to/repo/foo /tmp/mysubfoo-repo