如何检查hg pull中哪些文件和内容已更改

时间:2013-10-24 02:10:23

标签: version-control mercurial

我当时是默认分支。

然后我使用hg pull -u

然后我得到了这个

searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 1 files
1 files updated, 0 files merged, 0 files removed, 0 files unresolved

现在我想知道哪些文件已更新,哪些内容在该文件中更新了

2 个答案:

答案 0 :(得分:6)

这就是为什么最好使用hg pull而不是hg pull -u。如果您使用了首选hg pull您的会话将如下所示:

$ hg pull
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 1 files

$ hg diff default  # this shows you exactly what you want to see

$ hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved

关键在于,如果您将新的变更集拉到您的存储库中但不更新工作目录中的文件,则可以hg diff default比较当前工作目录的文件(也就是您拥有的文件)在拉动之前)和拉动后的新头部默认。如果您喜欢这些更改,请将其应用于hg update的本地文件。

那就是说,在这种特殊情况下,因为你知道你有3个变更集,并且因为它们可能是线性的,你可以这样做:

hg diff --rev -4

表示将我当前的修订版本(现在是您更新后的头部)与修订版本3进行比较(-1是最后一个)。但打破-u习惯。更新存储库和工作目录是完全不同的操作,最好分开完成。

答案 1 :(得分:2)

hg incoming可让您检查在执行hg pull(有或没有更新选项)时将被撤消的新变更集。我通常通过TortoiseHG执行此操作,它让我可以在我将更改实际发送到本地存储库之前检查将会发生什么,更不用说更新到该更改集了。