hgweb: send Content-Length 0 for zero length response
Before, Content-Length wasn't sent for 0 length responses. Now it is.
This could in principle prevent some unnecessary http connection close.
archival: tarit should never close the dest passed to it
Some archive types closed the open file passed to it, some didn't.
This could cause either missing or duplicate close and cause problems in hgweb.
The fix in
14f3795a5ed7 should only have closed the compressors and archivers -
not the underlying file itself if no compressor is used.
mq: checktoppatch should only check if p1 is qtip
There is no way qtip in p2 could be used for anything, and there is thus no
reason to check and accept it.
mq: fix qpop of working directory parent patch when not at qtip
mq assumed that it had to update from qtip to qparent, and instead of updating
from where it was it failed with:
abort: working directory revision is not qtip
largefiles: make log match largefiles in the non-standin location too
Yet another match hack.
log: make log work even if first parameter doesn't exist
A slowpath optimization kicked in too often because of wrong indentation.
merge: remove "case" comments
The comments introduced in
f05c182430a0 seems important ... but the context has
apparently been lost and they do not have any value now.
merge: merge file flags together with file content
The 'x' flag and the 'l' flag are very different. It is usually not a problem
to change the 'x' flag of a normal file independent of the content, but one
does not simply change the type of a file to 'l' independent of the content.
This removes the fmerge function that merged both 'x' and 'l' independent of
content early in the merge process. This correctly introduces some conflicts
instead of silent incorrect merges. 3-way flag merge will now be done in the
resolve process, right next to file content merge. Conflicts can thus be
resolved with (slightly inconvenient) resolve commands like 'resolve f --tool
internal:other'. It thus brings us closer to be able to re-solve manifest merge
after the merge and avoid prompts during merge.
This also removes the "conflicting flags for a - (n)one, e(x)ec or sym(l)ink?"
prompt that nobody could answer and that made it easy to mix symlink targets
and file contents up. Instead it will give a file merge where a sufficiently
clever merge tool can help resolving the issue.
tests: better test coverage of merges of flags
This makes existing problems with merges of symlinks and files more obvious and
add test coverage for tricky merges without real common ancestors.
merge: remove old pre-audit code checking for absolute paths
Audit will handle this in a more elegant way.