2012-11-06 70 views
0

我有一个情况,我正在写一个系统,处理大量的存储库,配置,构建和运行的东西。有一项任务可能称为sync-repository,用户应该能够调用该任务以确保最新版本的资源库获取给客户端。汞拉/克隆

这可能是回购已经存在,在这种情况下,我想要做一个hg update。也有可能回购不存在,在这种情况下,我想要做一个hg clone。用户不必关心是哪种情况。哦,而且存储库很大,所以每次都擦拭目录和clone不是一个选项。

hg是否提供了一个单一的命令clone s或update s根据哪个是合适的?或者我将不得不用bash来做到这一点?

+0

感谢您的发现,我无法找到该搜索。我不确定它是否是重复的 - 这个问题解释了如何用bash做到这一点,它没有回答是否有办法没有bash(尽管OP确实要求这样做)。 – Hbcdev

+0

缺乏回答说如何在上面的链接中的mercurial中做到这一点应该是一个暗示,最简单的方法将在Bash中。 – Paystey

回答

1

用户不应该在意是哪种情况。

是的,但你肯定很关心,知道,莫非你有克隆或没有。你想如何管理它?

如果您someconfig文件的形式,f.e

Reponame = /全/路径/到/克隆

可以检测,如果克隆存在与否和使用的if-then-else逻辑。如果你还没有的信息,你不能让决策

附加

不,不是水银核心(我希望,他们从来没有出现在它),这样的“组合”命令,因为Mercurial并没有将git-way“一个命令用于不同的不相关的任务”,更严格地遵循Unix方式(“注意自己的业务!”)

但是,从另一方面来说,它会给你自由做你所做的想要 - 你可以定义自己的Mercurial命令(如果你问了这个),这可能是一个无关的原始命令的大杂烩(参见Aliases extension(维基页面稍微过时)和[alias] section .hgrc - 最新),甚至在Mercurial别名中使用shell命令

+0

确切地说,这就是问题的要点:我必须在意吗?我在问是否有Mercurial命令,这个问题我不认为你正在回答。而且我找到解决方法很好,但我更愿意使用Mercurial命令(不太冒昧==更好)。 – Hbcdev

+0

@Hbcdev - “我必须在乎吗?”你*可以*关心或不关心:“这取决于...”用bash你可以获得**快速,便宜,而不是便携式**解决方案,你的逻辑会给**更昂贵,更快,更便携的解决方案。这是你的决定选择什么 –

+0

你是否说这里有一个内置的命令可以做到这一点,但它比使用bash更慢?我怀疑这是真的。 – Hbcdev