Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What files will be changed vs added when I do an hg pull and hg update

So in Subversion when I do an svn up I get a list of files that were added, modified, deleted, and conflicted.

When I do an hg pull then hg up -v it just displays a list of: getting file.ext but I have no way of know if that file is new or already existed. Is there a way to have Mercurial display the same sort of meta about if the file was added, modified, or deleted?

Does Mercurial offer any ability to do what I am asking?

like image 399
James Avatar asked Jul 18 '10 21:07

James


2 Answers

Omni has your answer, and I voted for it, but just to show all the options:

Before pulling

  • hg incoming # shows the changesets you'll get
  • hg incoming --verbose # shows the changesets you'll get including a file list for each
  • hg incoming --patch # shows the full diffs of all the changesets you'll be getting

After pulling (but not updating):

  • hg log -r .:tip # shows the changesets you got
  • hg log --verbose -r .:tip # shows the changesets you got including a file list for each
  • hg log --patch -r .:trip # shows the full diffs of all the changesets you got
like image 145
Ry4an Brase Avatar answered Nov 16 '22 01:11

Ry4an Brase


Use the status command to list changes in file status between the working copy and its parent revision or between any two revisions. It gives you output like this:

$ hg status --rev .:tip
M hgext/keyword.py
M mercurial/cmdutil.py
M mercurial/commands.py
M mercurial/context.py
M mercurial/patch.py
A tests/test-encoding-align
A tests/test-encoding-align.out

which corresponds to this update:

$ hg update -v
resolving manifests
getting hgext/keyword.py
getting mercurial/cmdutil.py
getting mercurial/commands.py
getting mercurial/context.py
getting mercurial/patch.py
getting tests/test-encoding-align
getting tests/test-encoding-align.out
7 files updated, 0 files merged, 0 files removed, 0 files unresolved

Edit: You can create a preupdate hook to always get this information as part of your updates. I happen to be on Windows right now, and here this hook works:

[hooks]
preupdate = hg status --rev .:%HG_PARENT1%

Replace %HG_PARENT1% with $HG_PARENT1 on Unix-like systems. This should make the Mercurial experience even more Subversion-like :-)

like image 21
Martin Geisler Avatar answered Nov 16 '22 00:11

Martin Geisler