# HG changeset patch # User Matt Mackall # Date 1367613258 18000 # Node ID 70f0d1da36b0b304ea00fbdd742285e2dc1c22eb # Parent d982edcfe7f0e815a6dd878de1823e7da3e3b17c# Parent bd19587a3347c67032cab362176b89b85b38c3c2 merge with stable diff -r d982edcfe7f0 -r 70f0d1da36b0 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Thu May 02 20:41:22 2013 -0500 +++ b/mercurial/cmdutil.py Fri May 03 15:34:18 2013 -0500 @@ -2055,6 +2055,12 @@ checkout(f) normal(f) + copied = copies.pathcopies(repo[parent], ctx) + + for f in add[0] + undelete[0] + revert[0]: + if f in copied: + repo.dirstate.copy(copied[f], f) + if targetsubs: # Revert the subrepos on the revert list for sub in targetsubs: diff -r d982edcfe7f0 -r 70f0d1da36b0 mercurial/dirstate.py --- a/mercurial/dirstate.py Thu May 02 20:41:22 2013 -0500 +++ b/mercurial/dirstate.py Fri May 03 15:34:18 2013 -0500 @@ -700,7 +700,7 @@ for nf in iter(visit): # Report ignored items in the dmap as long as they are not # under a symlink directory. - if ignore(nf) and audit_path.check(nf): + if audit_path.check(nf): try: results[nf] = lstat(join(nf)) except OSError: diff -r d982edcfe7f0 -r 70f0d1da36b0 tests/test-hgignore.t --- a/tests/test-hgignore.t Thu May 02 20:41:22 2013 -0500 +++ b/tests/test-hgignore.t Fri May 03 15:34:18 2013 -0500 @@ -124,3 +124,13 @@ (?:(?:|.*/)[^/]*(?:/|$)) $ cd .. + +Check patterns that match only the directory + + $ echo "^dir\$" > .hgignore + $ hg status + A dir/b.o + ? .hgignore + ? a.c + ? a.o + ? syntax diff -r d982edcfe7f0 -r 70f0d1da36b0 tests/test-revert.t --- a/tests/test-revert.t Thu May 02 20:41:22 2013 -0500 +++ b/tests/test-revert.t Fri May 03 15:34:18 2013 -0500 @@ -275,4 +275,28 @@ $ hg revert --no-backup ignored removed $ hg st -mardi +someone set up us the copies + + $ rm .hgignore + $ hg update -C + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg mv ignored allyour + $ hg copy removed base + $ hg commit -m rename + +copies and renames, you have no chance to survive make your time (issue3920) + + $ hg update '.^' + 1 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ hg revert -rtip -a + adding allyour + adding base + removing ignored + $ hg status -C + A allyour + ignored + A base + removed + R ignored + $ cd ..