# HG changeset patch # User Robin Farine # Date 1138064341 -46800 # Node ID f49f602fae9280140cc8a61c97d8bae0c8d7a424 # Parent 94c179a92f4a9572312587839263f167d4d00227 copy & rename can ignore removed source files As mercurial now distinguishes deleted files from removed files, we can skip removed source files while copying or renaming. diff -r 94c179a92f4a -r f49f602fae92 mercurial/commands.py --- a/mercurial/commands.py Tue Jan 24 13:57:09 2006 +1300 +++ b/mercurial/commands.py Tue Jan 24 13:59:01 2006 +1300 @@ -804,7 +804,8 @@ def okaytocopy(abs, rel, exact): reasons = {'?': _('is not managed'), - 'a': _('has been marked for add')} + 'a': _('has been marked for add'), + 'r': _('has been marked for remove')} reason = reasons.get(repo.dirstate.state(abs)) if reason: if exact: diff -r 94c179a92f4a -r f49f602fae92 tests/test-rename --- a/tests/test-rename Tue Jan 24 13:57:09 2006 +1300 +++ b/tests/test-rename Tue Jan 24 13:59:01 2006 +1300 @@ -152,3 +152,9 @@ (cd d1/d11; hg rename .. ../../d3) hg status hg update -C + +echo "# skip removed files" +hg remove d1/b +hg rename d1 d3 +hg status +hg update -C diff -r 94c179a92f4a -r f49f602fae92 tests/test-rename.out --- a/tests/test-rename.out Tue Jan 24 13:57:09 2006 +1300 +++ b/tests/test-rename.out Tue Jan 24 13:59:01 2006 +1300 @@ -232,3 +232,17 @@ R d1/b R d1/ba R d1/d11/a1 +# skip removed files +copying d1/a to d3/a +copying d1/ba to d3/ba +copying d1/d11/a1 to d3/d11/a1 +removing d1/a +removing d1/ba +removing d1/d11/a1 +A d3/a +A d3/ba +A d3/d11/a1 +R d1/a +R d1/b +R d1/ba +R d1/d11/a1