Mercurial > hg-stable
changeset 6158:23ffe82615d8
repo.status: also compare flags for files in the lookup list.
We might be able to do something smarter about this in dirstate.status
for files in normallookup state, but that would require some extra
care to keep backwards compatibility.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Thu, 21 Feb 2008 16:22:31 -0300 |
parents | 09b00faa8670 |
children | bc784304fea1 |
files | mercurial/localrepo.py tests/test-execute-bit tests/test-execute-bit.out |
diffstat | 3 files changed, 20 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Thu Feb 21 16:22:31 2008 -0300 +++ b/mercurial/localrepo.py Thu Feb 21 16:22:31 2008 -0300 @@ -1003,8 +1003,15 @@ fixup = [] # do a full compare of any files that might have changed ctx = self.changectx() + mexec = lambda f: 'x' in ctx.fileflags(f) + mlink = lambda f: 'l' in ctx.fileflags(f) + is_exec = util.execfunc(self.root, mexec) + is_link = util.linkfunc(self.root, mlink) + def flags(f): + return is_link(f) and 'l' or is_exec(f) and 'x' or '' for f in lookup: - if f not in ctx or ctx[f].cmp(self.wread(f)): + if (f not in ctx or flags(f) != ctx.fileflags(f) + or ctx[f].cmp(self.wread(f))): modified.append(f) else: fixup.append(f)
--- a/tests/test-execute-bit Thu Feb 21 16:22:31 2008 -0300 +++ b/tests/test-execute-bit Thu Feb 21 16:22:31 2008 -0300 @@ -4,12 +4,18 @@ hg init echo a > a -hg ci -d'0 0' -Am'not executable' +hg ci -Am'not executable' chmod +x a -hg ci -d'1 0' -m'executable' +hg ci -m'executable' hg id +echo '% make sure we notice the change of mode if the cached size == -1' +hg rm a +hg revert -r 0 a +hg debugstate +hg st + hg up 0 hg id test -x a && echo executable -- eek || echo not executable -- whew
--- a/tests/test-execute-bit.out Thu Feb 21 16:22:31 2008 -0300 +++ b/tests/test-execute-bit.out Thu Feb 21 16:22:31 2008 -0300 @@ -1,5 +1,8 @@ adding a -1549299e88d1 tip +79abf14474dc tip +% make sure we notice the change of mode if the cached size == -1 +n 0 -1 unset a +M a 0 files updated, 0 files merged, 0 files removed, 0 files unresolved d69afc33ff8a not executable -- whew