# HG changeset patch # User Alexis S. L. Carvalho # Date 1202501275 7200 # Node ID d0dbae32517c04f402d29591ac9898c5454d9627 # Parent 5b6190dfb344a1fe5e95bd9ee84dc3163398600e revert: revert clean files when only a change of flags is needed diff -r 5b6190dfb344 -r d0dbae32517c mercurial/commands.py --- a/mercurial/commands.py Fri Feb 08 18:07:55 2008 -0200 +++ b/mercurial/commands.py Fri Feb 08 18:07:55 2008 -0200 @@ -2429,7 +2429,8 @@ if mfentry: # if version of file is same in parent and target # manifests, do nothing - if pmf[abs] != mfentry: + if (pmf[abs] != mfentry or + pmf.flags(abs) != mf.flags(abs)): handle(revert, False) else: handle(remove, False) diff -r 5b6190dfb344 -r d0dbae32517c tests/test-revert-flags --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-revert-flags Fri Feb 08 18:07:55 2008 -0200 @@ -0,0 +1,17 @@ +#!/bin/sh + +"$TESTDIR/hghave" execbit || exit 80 + +hg init repo +cd repo +echo foo > foo +chmod 644 foo +hg ci -qAm '644' + +chmod 755 foo +hg ci -qAm '755' + +echo '% reverting to rev 0' +hg revert -a -r 0 +hg st +hg diff --git diff -r 5b6190dfb344 -r d0dbae32517c tests/test-revert-flags.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-revert-flags.out Fri Feb 08 18:07:55 2008 -0200 @@ -0,0 +1,6 @@ +% reverting to rev 0 +reverting foo +M foo +diff --git a/foo b/foo +old mode 100755 +new mode 100644