merge: drop reference to file contents immediately after write
Like
7d2aaeea67ed this reduces memory usage on large merges.
merge: changing the mode of a file is also an update
It was a change in the file system that wasn't reported in the summaries.
merge: use util.unlinkpath for removing moved files
- more like how removed files are removed.
merge: remove redundant unlink after merge
The early prescan for move/remove and removal of moved files in applyupdates
was introduced with mergestate
368a4ec603cc and rendered this chunk of code
irrelevant.
The impact of the chunk was reduced in
5b3383ea67d2 - but it could have been
removed completely.
merge: consistently use "x" instead of 'x' for internal action types
This makes it simpler to search for places where the action types are handled.
util: copyfile: remove dest before copying
This prevents spurious problems writing to locked files on Windows.
merge: warn when internal:merge cannot merge symlinks
A follow-up to
d084df89d948.
internal:merge should never be picked for merging symlinks ... but in the test
suite we have HGMERGE="internal:merge" which bypasses all the usual merge-tool
cleverness. Without any output it can be hard to figure out what happened and
where the problem is.