Mercurial > hg
view tests/test-update-issue1456.t @ 14450:d1a1578c5f78
commands.remove: don't use workingctx.remove(list, unlink=True)
workingctx.remove(list, unlink=True) is unsuited here, because it does too
much: it also unlinks added files. But the command 'hg remove' is specified
to *never* unlink added files.
Instead, we now unlink the files at the commands.remove level (if --after was
not specified) and use workingctx.forget for all files.
As an added bonus, this happens to eliminate a wlock acquire/release pair,
since the previous implementation caused
acquire wlock
release wlock
acquire wlock
release wlock
where the first pair of acquire/release was caused by the workingctx.forget
call, and the second by the workingctx.remove call.
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Fri, 27 May 2011 15:59:52 +0200 |
parents | 4134686b83e1 |
children | db0340f4b507 |
line wrap: on
line source
$ rm -rf a $ hg init a $ cd a $ echo foo > foo $ hg ci -qAm0 $ chmod +x foo $ hg ci -m1 $ hg co -q 0 $ echo dirty > foo $ hg up -c abort: uncommitted local changes [255] $ hg up -q $ cat foo dirty $ hg st -A M foo Validate update of standalone execute bit change: $ hg up -C 0 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ chmod -x foo $ hg ci -m removeexec nothing changed [1] $ hg up -C 0 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg up 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg st