doubts on revert, status and diff... a bug?
Alessandro Dentella
sandro at e-den.it
Mon Feb 4 03:27:57 CST 2008
In my opinion 'hg revert' behaves differet from what inline help says for
permission
On Sat, Feb 02, 2008 at 10:02:27PM +1100, Bela Babik wrote:
> > I thought revert would make the version of header_check equal to the rev
> > n. 1... shoudn't it?
>
> hg revert affects only the working copy.
I know. Working dir is at changeset 4. If I revert 'header_checks' to
revision 1 as in:
www:/etc/postfix# hg revert -r 1 header_checks
I expect contet of file 'header_check'to change
but this shows that nothing changed, so no real diff between
www:/etc/postfix# hg st .
www:/etc/postfix#
so this is a complete example:
-----------------------------
$ hg init
$ touch perm.test
$ ll perm.test
-rw-r--r-- 1 sandro sandro 0 2008-02-04 10:13 perm.test
$ hg add perm.test
$ hg ci -m 644 perm.test
$ chmod 755 perm.test
$ hg st
M perm.test
$ hg ci -m 755 perm.test
$ hg log
changeset: 1:299473ef717d
tag: tip
user: sandro
date: Mon Feb 04 10:14:29 2008 +0100
summary: 755
changeset: 0:9443e55c06fd
user: sandro
date: Mon Feb 04 10:14:01 2008 +0100
summary: 644
$ ll perm.test
-rwxr-xr-x 1 sandro sandro 0 2008-02-04 10:13 perm.test
$ hg st
$ chmod 644 perm.test ### I change manually -> hg realizes that
$ hg st
M perm.test
$ chmod 755 perm.test
$ hg st
$ hg revert -r 0 perm.test ### I revert, perms don't chage
$ ll perm.test
-rwxr-xr-x 1 sandro sandro 0 2008-02-04 10:13 perm.test
$ hg st
$ hg st --rev 0
M perm.test
The last lines show that permission are not restore but hg revert -h says
they should revert::
If a file has been deleted, it is restored. If the executable
mode of a file was changed, it is reset.
sandro
*:-)
> Hi all, I'm using hg to keep trace of modification in some conf file, I see
> modifications that are just on dates (I guess) that I can't hide as I'd like
> (suggestions are wellcome).
>
> in the following anyhow I'd expect revert to work but it does no do what I'd
> expect...
>
> www:/etc/postfix# hg st --rev 1 .
> M header_checks
> M main.cf
> M master.cf
> M relay_domains.db
> www:/etc/postfix# hg diff -r 1
> www:/etc/postfix#
>
> this means no diffs are between rev N. 1 and working dir
> I deduce that the 'M' status above is not in data, just in dates: correct?
>
>
> www:/etc/postfix# hg revert -r 1 header_checks
> www:/etc/postfix# hg st .
> www:/etc/postfix# hg st --rev 1 .
> M header_checks
> M main.cf
> M master.cf
> M relay_domains.db
>
> I thought revert would make the version of header_check equal to the rev
> n. 1... shoudn't it?
>
sandro
*:-)
More information about the Mercurial
mailing list