Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.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
Caching 创建mercurial存储库的本地透明缓存_Caching_Mercurial - Fatal编程技术网

Caching 创建mercurial存储库的本地透明缓存

Caching 创建mercurial存储库的本地透明缓存,caching,mercurial,Caching,Mercurial,我有很多不同的克隆体,我分别进行研究。当我想要更新这些克隆时,从服务器更新它们可能会非常慢。因此,我有一个“干净”的克隆,我定期从服务器上更新它,所有其他克隆都是从干净的克隆中克隆出来的(希望这是有意义的) 但现在我有一个两步的方法。首先转到干净的克隆并拖动,然后转到我正在处理的真实克隆并从干净的克隆中拖动。这可以分为一个步骤吗 理想情况下,“干净的”克隆应该是透明的:当它被从中拉出来时,它会自己拉。这样我们就有了缓存和一步操作。有什么方法可以做到这一点吗?在本地保持一个干净的克隆是非常常见的,

我有很多不同的克隆体,我分别进行研究。当我想要更新这些克隆时,从服务器更新它们可能会非常慢。因此,我有一个“干净”的克隆,我定期从服务器上更新它,所有其他克隆都是从干净的克隆中克隆出来的(希望这是有意义的)

但现在我有一个两步的方法。首先转到干净的克隆并拖动,然后转到我正在处理的真实克隆并从干净的克隆中拖动。这可以分为一个步骤吗


理想情况下,“干净的”克隆应该是透明的:当它被从中拉出来时,它会自己拉。这样我们就有了缓存和一步操作。有什么方法可以做到这一点吗?

在本地保持一个干净的克隆是非常常见的,通常也是一个好主意。我一直坚持使用您描述的两步流程,但是如果您愿意,可以使用钩子来实现这一点

在缓存repo中,您可以将这样的内容放入
.hg/hgrc
文件中:

[hooks]
preoutgoing = hg pull
这告诉回购在捆绑更改以响应对其发出的
pull
clone
请求之前,先执行
hg pull

请注意,即使下游(真正的克隆)repo使用
pull-r
clone-r
请求变更集的子集,此缓存repo也会拉下所有内容。这很可能是你想要的,因为你的目标是一面镜子,但评论者指出这是值得指出的。

你可以使用。在您的
/.hg/hgrc
中,添加以下内容作为初稿:

[hooks]

# Before a pull from this repository, pull from upstream.
preoutgoing.autopull = [ $HG_SOURCE = 'pull' ] && hg pull

# After a push to this repository, push to upstream.
changegroup.autopush = [ $HG_SOURCE = 'push' ] && hg push

(注意:“
autopush
”和“
autopull
”是可选标识符,没有特殊意义;如果没有定义其他挂钩,则可以将它们省略。)

您可能收到了错误信息:
预输出
不限于基于网络的拉取。此外,您还需要将
预输出
钩子限制为
拉取
请求的变更集,以防止它在从干净的克隆推送到上游时也触发。哦,预输出是正确的,这就更好了。我会更新的。好的,这不总是有效的。我认为这是因为只有当下游回购(我的签出)缺少来自上游回购(我的缓存)的提交时,才会触发传出。在这种情况下,将触发“传出”提交。有没有办法触发所有我从缓存中取出的情况?Hrm,你说得对。请尝试在外出前使用连字号进行
操作,该操作会一直命中,或者永远不会命中。此操作在Windows上有效吗?我尝试了这一点,但我在等待由“LVKGamerPC:1308”持有的存储库c:\temp\cache的锁定时遇到了
。这是在“克隆”部分,我尝试了使用
=hg pull
,因为
[…]
部分是针对Linux还是其他什么?