AP257
AP257

Reputation: 93773

View differences between two changesets on one file

I have a file tracked in Mercurial. I can see its history with hg log. How can I see the diffs between its most recent version, and the last checked-in changeset?

Upvotes: 54

Views: 35306

Answers (3)

arhak
arhak

Reputation: 2542

there is also de ^ syntax for the parent revision, which in addition to . (the parent of the working directory) make a useful combination:

show the diff between current checked out revision and its parent revision (this works around tip and -1 limitations)

hg diff -r .^:.

Upvotes: 0

stack72
stack72

Reputation: 8278

hg diff -r <first_revision_number>:<other_revision_number> filename

that will do it

e.g hg diff -r 0:1 default.aspx

hope it helps

Upvotes: 61

Mikezx6r
Mikezx6r

Reputation: 16905

If you know the revision numbers, then what PaulStack said is correct.

If you explicitly want to know the difference between the current tip of the branch, and it's previous, you can use shortcuts. Of course, if the file hasn't changed, the diff won't show anything useful.

hg diff -r -1:. filename

The -1 says previous changeset on this branch. the '.' means the current changeset. You can use -2, -3 etc, but once you hit a merge point, it gets a little more interesting. (reference: http://hgtip.com/tips/beginner/2009-10-05-shortcuts-for-specifying-revisions/)

If what you want is the outstanding changes in your workspace, then it's merely hg diff filename.

A few useful places for HG newbies is http://hgtip.com.

The HG definitive guide at http://hgbook.red-bean.com/.

A stackoverflow like site that's more HG specific is the Kiln support site. http://kiln.stackexchange.com. Kiln is built on top of HG, and uses a modified TortoiseHG client, so most of the questions and answers there are informative. They will also answer questions even if you aren't a user.

Upvotes: 43

Related Questions