Mercurial Hg拉/克隆

Mercurial Hg拉/克隆,mercurial,Mercurial,我曾经遇到过这样的情况:我正在为一个处理大量存储库、配置、构建和运行内容的系统编写代码。有一个任务也可以称为sync repository,用户应该能够调用该任务,以确保将存储库的最新版本发送到客户端 有可能回购协议已经存在,在这种情况下,我想做一个hg更新。也有可能回购协议不存在,在这种情况下,我想做一个hg克隆。用户不必关心这种情况。哦,而且存储库很大,所以每次都要擦除目录并cloneing不是一个选项 hg是否提供了一个在引擎盖下执行克隆s或更新s的命令,具体取决于哪个命令合适?还是我要和

我曾经遇到过这样的情况:我正在为一个处理大量存储库、配置、构建和运行内容的系统编写代码。有一个任务也可以称为
sync repository
,用户应该能够调用该任务,以确保将存储库的最新版本发送到客户端

有可能回购协议已经存在,在这种情况下,我想做一个
hg更新
。也有可能回购协议不存在,在这种情况下,我想做一个
hg克隆。用户不必关心这种情况。哦,而且存储库很大,所以每次都要擦除目录并
clone
ing不是一个选项

hg
是否提供了一个在引擎盖下执行
克隆
s或
更新
s的命令,具体取决于哪个命令合适?还是我要和bash一起做

用户不必关心这种情况

是的,但是您必须关心和了解,您是否有克隆。您想如何管理它

如果你在表单中有一些配置文件,f.e

Reponame=/full/path/to/clone

您可以检测克隆是否存在,并使用if-then-else逻辑。如果你没有信息,你就不能做出决定

附加组件

不,在Mercurial core中没有这样的“组合”命令(我希望,它们永远不会出现在它里面),因为Mercurial没有像git那样“一个命令用于不同的无关任务”,更严格地遵循Unix方式(“管好自己的事!”)


但是,从另一个角度看,它让您可以自由地做您想做的事情-您可以定义自己的Mercurial命令(如果您要求的话),这可能是一个由不相关的原始命令组成的大杂烩(请参阅(wiki页面有点过时)和在.hgrc中-最新),甚至可以使用Mercurial别名中的shell命令

感谢您的发现,我找不到那个。我不确定这是否是一个重复的问题——这个问题解释了如何使用bash,它没有回答是否有一种不使用bash的方法(尽管OP确实提出了这个问题)。上面的链接中没有回答如何在mercurial中使用它,这应该暗示最简单的方法是在bash中。没错,这就是问题的关键所在:我需要关心吗?我在问是否有一个反复无常的命令,我想你没有回答这个问题。我很乐意找到解决办法,但我更愿意使用Mercurial命令(黑客性越少=越好)。@Hbcdev-“我必须关心吗?”你可以关心,也可以不关心:“这取决于…”有了bash,你得到的是快速、廉价、不可移植的解决方案,你的逻辑将给出更昂贵、不太快、可移植的解决方案。选择什么是你的决定你是说有一个反复无常的内部命令来做这件事,但是它比使用bash慢?我怀疑这是真的。@Hbcdev-请看我的编辑回答,我希望他们会回答