unshelve: don't commit unknown files during unshelve (
issue4113)
Previously, unshelve would temporarily commit unknown files (via addremove) in
an attempt to allow unshelving into unknown files. This produced unexpected
results, like the file time stamp changing and a .i file being created.
This change makes it no longer use addremove. It ignores unknown files
completely. If an unshelve would overwrite an unknown file, the unknown file is
moved to *.orig
The shelve continue/abort format is changed, but it just removes stuff from the
end of the file, so it can still read the old format.
# invalid filenames
test-add.t
test-init.t
test-clone.t
test-contrib.t
test-hgweb-raw.t
test-walk.t
# no sockets or fifos
test-hup.t
test-inotify-debuginotify.t
test-inotify-dirty-dirstate.t
test-inotify-issue1208.t
test-inotify-issue1371.t
test-inotify-issue1542.t
test-inotify-lookup.t
test-inotify.t
test-inotify-issue1556.t
# no hardlinks
test-hardlinks.t
test-relink.t
# exec bit problems
test-convert-bzr-114.t
test-convert-bzr-directories.t
test-convert-bzr-merges.t
test-convert-bzr-treeroot.t
test-convert-darcs.t
test-merge-tools.t
# debugstate exec bit false positives
test-dirstate.t
test-filebranch.t
test-merge-remove.t