Mercurial:我如何找出我的工作副本和另一个副本之间的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mercurial:我如何找出我的工作副本和另一个副本之间的区别相关的知识,希望对你有一定的参考价值。
我是Mercurial的新手,主要从事Clearcase的工作。
在我从最新分支机构获取更改之前,我想知道存在的更改以及哪些文件存在冲突。 (主要是看我现在或以后是否应该更新。)
有没有办法在工作副本和另一个副本之间进行hg差异?
您可以使用以下命令检查其他存储库中的更改:
hg incoming path
这基本上就像pull
,但它实际上并没有拉动。
但实际上,您通常只需拉动,因为拉动传入的变更集不会触及您的工作副本。只有当你update
或merge
你的工作副本得到更新时,才有可能发生冲突。
理想情况下,update
和merge
会有一个选项来进行暂时合并,也就是说,除非存在冲突,否则它会合并,但是此类选项目前还不存在。
将更改提取到存储库后,您可以像往常一样使用diff将其与工作副本进行比较。
hg diff -r tip
有没有办法在工作副本和另一个副本之间进行hg差异?
No. diff比较了repo的两个版本。在你的情况下,你可以盲目拉(获取updatesto repo),但避免自动更新你的工作副本。使用synced repo,您可以在需要时使用hg diff,hg update,hg merge。您也可以不做任何事情并提交您的更改 - 您将只拥有匿名分支,并且还可以使用其他头部进行回购
首先,您应该在执行任何操作之前提交更改。我从未使用过ClearCase,但我认为它必须像SVN一样工作,如果我错了,请原谅我。 DVCS优于CVCS的最大优势之一是它允许您先提交并决定以后要做什么。这是非常重要的,因为你先整合你的工作,如果事情在合并后开始变得太混乱,你的工作在存储库中是安全的。在更糟糕的情况下,你甚至可以放弃凌乱的合并,重新开始。即使在合并之后,原始作品的版本(在合并之前)将在那里,检查合并是否引入了一些问题非常重要。在SVN(并且假设ClearCase类似)它是相反的:它不允许没有更新和合并的提交......我讨厌它!
另一件事,mercurial中的pull命令不会改变工作目录中的任何内容。它只是将更改带到本地存储库。所以,在我的意见中,你应该:
- 承诺
- 拉,工作副本不会发生任何事情
- 现在,您可以检查日志,比较修订版本,并决定做什么和如何做,没有丢失工作的风险。如果您决定现在不合并,那很好,您不必仅因为您撤销其他修订而合并(尽管推荐的做法是经常合并以避免合并非常不同的修订的头痛)
如果您正在使用TortoiseHG,那么您可以使用下载传入更改集的传入按钮,但您可以选择是否应用它们。
以上是关于Mercurial:我如何找出我的工作副本和另一个副本之间的区别的主要内容,如果未能解决你的问题,请参考以下文章