2010-08-14 04:12:01 +04:00
|
|
|
$ hg init rep
|
|
|
|
$ cd rep
|
|
|
|
$ mkdir dir
|
|
|
|
$ touch foo dir/bar
|
|
|
|
$ hg -v addremove
|
|
|
|
adding dir/bar
|
|
|
|
adding foo
|
2010-09-03 01:22:51 +04:00
|
|
|
$ hg -v commit -m "add 1"
|
2014-04-18 15:33:20 +04:00
|
|
|
committing files:
|
2010-08-14 04:12:01 +04:00
|
|
|
dir/bar
|
|
|
|
foo
|
2014-04-18 15:33:20 +04:00
|
|
|
committing manifest
|
|
|
|
committing changelog
|
2010-09-03 01:22:51 +04:00
|
|
|
committed changeset 0:6f7f953567a2
|
2010-08-14 04:12:01 +04:00
|
|
|
$ cd dir/
|
2012-06-06 01:13:45 +04:00
|
|
|
$ touch ../foo_2 bar_2
|
2010-08-14 04:12:01 +04:00
|
|
|
$ hg -v addremove
|
|
|
|
adding dir/bar_2
|
|
|
|
adding foo_2
|
2010-09-03 01:22:51 +04:00
|
|
|
$ hg -v commit -m "add 2"
|
2014-04-18 15:33:20 +04:00
|
|
|
committing files:
|
2010-08-14 04:12:01 +04:00
|
|
|
dir/bar_2
|
|
|
|
foo_2
|
2014-04-18 15:33:20 +04:00
|
|
|
committing manifest
|
|
|
|
committing changelog
|
2012-06-06 01:13:45 +04:00
|
|
|
committed changeset 1:e65414bf35c5
|
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().
2014-11-09 10:13:39 +03:00
|
|
|
$ cd ..
|
|
|
|
$ hg forget foo
|
|
|
|
$ hg -v addremove
|
|
|
|
adding foo
|
2014-11-26 22:27:36 +03:00
|
|
|
$ hg forget foo
|
2017-07-09 01:37:41 +03:00
|
|
|
|
2015-01-18 04:38:57 +03:00
|
|
|
$ hg -v addremove nonexistent
|
2017-12-03 03:33:34 +03:00
|
|
|
nonexistent: $ENOENT$
|
2014-11-26 22:27:36 +03:00
|
|
|
[1]
|
2017-07-09 01:37:41 +03:00
|
|
|
|
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().
2014-11-09 10:13:39 +03:00
|
|
|
$ cd ..
|
2010-08-14 04:12:01 +04:00
|
|
|
|
2014-12-02 08:48:32 +03:00
|
|
|
$ hg init subdir
|
|
|
|
$ cd subdir
|
|
|
|
$ mkdir dir
|
|
|
|
$ cd dir
|
|
|
|
$ touch a.py
|
|
|
|
$ hg addremove 'glob:*.py'
|
|
|
|
adding a.py
|
|
|
|
$ hg forget a.py
|
|
|
|
$ hg addremove -I 'glob:*.py'
|
|
|
|
adding a.py
|
|
|
|
$ hg forget a.py
|
|
|
|
$ hg addremove
|
|
|
|
adding dir/a.py
|
|
|
|
$ cd ..
|
2018-02-19 19:57:37 +03:00
|
|
|
$ cd ..
|
2014-12-02 08:48:32 +03:00
|
|
|
|
2010-08-14 04:12:01 +04:00
|
|
|
$ hg init sim
|
|
|
|
$ cd sim
|
|
|
|
$ echo a > a
|
|
|
|
$ echo a >> a
|
|
|
|
$ echo a >> a
|
|
|
|
$ echo c > c
|
|
|
|
$ hg commit -Ama
|
|
|
|
adding a
|
|
|
|
adding c
|
|
|
|
$ mv a b
|
|
|
|
$ rm c
|
|
|
|
$ echo d > d
|
|
|
|
$ hg addremove -n -s 50 # issue 1696
|
|
|
|
removing a
|
|
|
|
adding b
|
|
|
|
removing c
|
|
|
|
adding d
|
|
|
|
recording removal of a as rename to b (100% similar)
|
|
|
|
$ hg addremove -s 50
|
|
|
|
removing a
|
|
|
|
adding b
|
|
|
|
removing c
|
|
|
|
adding d
|
|
|
|
recording removal of a as rename to b (100% similar)
|
|
|
|
$ hg commit -mb
|
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().
2014-11-09 10:13:39 +03:00
|
|
|
$ cp b c
|
|
|
|
$ hg forget b
|
|
|
|
$ hg addremove -s 50
|
|
|
|
adding b
|
|
|
|
adding c
|
2014-11-26 23:16:22 +03:00
|
|
|
|
|
|
|
$ rm c
|
2017-07-09 01:37:41 +03:00
|
|
|
|
2015-01-18 04:38:57 +03:00
|
|
|
$ hg ci -A -m "c" nonexistent
|
2017-12-03 03:33:34 +03:00
|
|
|
nonexistent: $ENOENT$
|
2014-11-26 23:16:22 +03:00
|
|
|
abort: failed to mark all new/missing files as added/removed
|
|
|
|
[255]
|
2017-07-09 01:37:41 +03:00
|
|
|
|
2014-11-26 23:16:22 +03:00
|
|
|
$ hg st
|
|
|
|
! c
|
2018-02-19 19:57:37 +03:00
|
|
|
|
|
|
|
$ hg forget c
|
|
|
|
$ touch foo
|
|
|
|
$ hg addremove
|
|
|
|
adding foo
|
|
|
|
$ rm foo
|
|
|
|
$ hg addremove
|
|
|
|
removing foo
|
|
|
|
|
2012-06-11 03:38:32 +04:00
|
|
|
$ cd ..
|