# HG changeset patch # User Brendan Cully # Date 1188429567 25200 # Node ID d59ed18ec2d07c9def9db1e15859c1d47cc74416 # Parent 15a108ad7adb0be221234177e544bdf196848309# Parent bfd73b567b3d7a2b73fb1dfd79b92d3a9e608caa Merge with crew-stable diff -r 15a108ad7adb -r d59ed18ec2d0 mercurial/commands.py --- a/mercurial/commands.py Tue Aug 28 23:02:41 2007 -0300 +++ b/mercurial/commands.py Wed Aug 29 16:19:27 2007 -0700 @@ -2330,6 +2330,14 @@ changes = repo.status(match=names.has_key)[:5] modified, added, removed, deleted, unknown = map(dict.fromkeys, changes) + # if f is a rename, also revert the source + cwd = repo.getcwd() + for f in added: + src = repo.dirstate.copied(f) + if src and src not in names and repo.dirstate[src] == 'r': + removed[src] = None + names[src] = (repo.pathto(src, cwd), True) + revert = ([], _('reverting %s\n')) add = ([], _('adding %s\n')) remove = ([], _('removing %s\n')) diff -r 15a108ad7adb -r d59ed18ec2d0 tests/test-revert --- a/tests/test-revert Tue Aug 28 23:02:41 2007 -0300 +++ b/tests/test-revert Wed Aug 29 16:19:27 2007 -0700 @@ -94,4 +94,9 @@ hg revert b newdir echo foobar > b/b hg revert . -true + +echo % reverting a rename target should revert the source +hg mv a newa +hg revert newa +hg st a newa + diff -r 15a108ad7adb -r d59ed18ec2d0 tests/test-revert.out --- a/tests/test-revert.out Tue Aug 28 23:02:41 2007 -0300 +++ b/tests/test-revert.out Wed Aug 29 16:19:27 2007 -0700 @@ -63,3 +63,5 @@ reverting b/b forgetting newdir/newfile reverting b/b +% reverting a rename target should revert the source +? newa