Mercurial > hg
view tests/test-issue1438.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 | b63f6422d2a7 |
children | 7a9cbb315d84 |
line wrap: on
line source
http://mercurial.selenic.com/bts/issue1438 $ "$TESTDIR/hghave" symlink || exit 80 $ hg init $ ln -s foo link $ hg add link $ hg ci -mbad link $ hg rm link $ hg ci -mok $ hg diff -g -r 0:1 > bad.patch $ hg up 0 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg import --no-commit bad.patch applying bad.patch $ hg status R link ? bad.patch