comparison tests/test-addremove.t @ 23259:9f4778027bc2

addremove: add back forgotten files (BC) After running "hg forget README && hg addremove", README will still be reported as removed, while "hg forget README && hg add README" adds it back so it gets reported as clean. It seems like they should behave the same. Furthermore, it seems like no files should remain untracked after 'hg addremove && hg commit' (or 'hg commit -A'). For these reasons, change the behavior of addremove so it does add forgotten files back. The problem is with scmutil._interestingfiles(), which reports the file as removed, so scmutil.addremove() does not add it. Fix by teaching _interestingfiles() to report forgotten files separately from removed files and make addremove() add forgotten files back. However, do not treat forgotten files as sources for rename detection. Note that since removed and forgotten files are treated the same before this change, forgotten files were considered sources for rename detection. Also update the other caller, marktouched(), in the same way as addremove().
author Martin von Zweigbergk <martinvonz@google.com>
date Sat, 08 Nov 2014 23:13:39 -0800
parents 6ef3107c661e
children 3778884197f0
comparison
equal deleted inserted replaced
23258:10697f29af2b 23259:9f4778027bc2
16 adding foo_2 16 adding foo_2
17 $ hg -v commit -m "add 2" 17 $ hg -v commit -m "add 2"
18 dir/bar_2 18 dir/bar_2
19 foo_2 19 foo_2
20 committed changeset 1:e65414bf35c5 20 committed changeset 1:e65414bf35c5
21 $ cd ../.. 21 $ cd ..
22 $ hg forget foo
23 $ hg -v addremove
24 adding foo
25 $ cd ..
22 26
23 $ hg init sim 27 $ hg init sim
24 $ cd sim 28 $ cd sim
25 $ echo a > a 29 $ echo a > a
26 $ echo a >> a 30 $ echo a >> a
43 adding b 47 adding b
44 removing c 48 removing c
45 adding d 49 adding d
46 recording removal of a as rename to b (100% similar) 50 recording removal of a as rename to b (100% similar)
47 $ hg commit -mb 51 $ hg commit -mb
52 $ cp b c
53 $ hg forget b
54 $ hg addremove -s 50
55 adding b
56 adding c
48 $ cd .. 57 $ cd ..