Tue, 15 Jan 2013 02:59:13 +0100 mq: stabilize update after strip of parent revision
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:13 +0100] rev 18371
mq: stabilize update after strip of parent revision Strip will (if it updates) update to the parent of revs[0], where revs are the roots of the tree that is stripped. When revs was list(set) it was thus undefined which root parent it would update to. With sorted(set) it is at least stable what it updates to. (But it is very possible that another more useful and predictable behaviour could be defined ... such as updating to the tip-most surviving wd ancestor.)
Wed, 12 Dec 2012 02:38:14 +0100 histedit: process bookmarks in sorted order
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18370
histedit: process bookmarks in sorted order
Wed, 12 Dec 2012 02:38:14 +0100 churn: sort users with same churn by name
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18369
churn: sort users with same churn by name This makes the output order well-defined and improves code readability.
Wed, 12 Dec 2012 02:38:14 +0100 largefiles: upload files in sorted order
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18368
largefiles: upload files in sorted order
Wed, 12 Dec 2012 02:38:14 +0100 hgweb: generate query strings with parameters sorted by key
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18367
hgweb: generate query strings with parameters sorted by key
Wed, 12 Dec 2012 02:51:02 +0100 identity: report bookmarks sorted
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:51:02 +0100] rev 18366
identity: report bookmarks sorted
Tue, 15 Jan 2013 02:59:13 +0100 obsolete: process markers in a stable order
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:13 +0100] rev 18365
obsolete: process markers in a stable order Using set iteration order gave unstable debugsuccessorssets output with PYTHONHASHSEED=random.
Wed, 12 Dec 2012 02:38:14 +0100 subrepos: process subrepos in sorted order
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18364
subrepos: process subrepos in sorted order Add sorted() in places found by testing with PYTHONHASHSEED=random and code inspection. An alternative to sprinkling sorted() all over would be to change substate to a custom dict with sorted iterators...
Tue, 15 Jan 2013 02:59:12 +0100 bookmarks: process pulled remote bookmarks in sorted order
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:12 +0100] rev 18363
bookmarks: process pulled remote bookmarks in sorted order
Wed, 12 Dec 2012 02:38:14 +0100 copies: report found copies sorted
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18362
copies: report found copies sorted
Tue, 15 Jan 2013 02:59:12 +0100 discovery: process heads in sorted order
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:12 +0100] rev 18361
discovery: process heads in sorted order
Tue, 15 Jan 2013 02:59:12 +0100 merge: process files in sorted order
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:12 +0100] rev 18360
merge: process files in sorted order
Wed, 12 Dec 2012 02:38:14 +0100 commandserver: report capabilities sorted
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18359
commandserver: report capabilities sorted
Wed, 12 Dec 2012 02:38:14 +0100 bisect: store state sorted
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18358
bisect: store state sorted
Tue, 15 Jan 2013 02:59:12 +0100 localrepo: store branchheads sorted
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:12 +0100] rev 18357
localrepo: store branchheads sorted
Wed, 12 Dec 2012 02:38:14 +0100 localrepo: store requirements sorted
Mads Kiilerich <mads@kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18356
localrepo: store requirements sorted
Tue, 15 Jan 2013 02:59:12 +0100 copies: make the loss in _backwardcopies more stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:12 +0100] rev 18355
copies: make the loss in _backwardcopies more stable A couple of tests shows slightly more correct output. That is pure coincidence.
Tue, 15 Jan 2013 01:10:08 +0100 serve: use chunked encoding in hgweb responses
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:10:08 +0100] rev 18354
serve: use chunked encoding in hgweb responses 'hg serve' used to close connections when sending a response with unknown length ... such as a bundle or archive. Now chunked encoding will be used for responses with unknown length, and the connection do thus not have to be closed to indicate the end of the response. Chunked encoding is only used if the length is unknown, if the connection wouldn't be closed for other reasons, AND if it is a HTTP 1.1 request. This will not benefit other users of hgweb ... but it can serve as an example that it can be done.
Tue, 15 Jan 2013 01:10:08 +0100 serve: remove connection close hack for Python 2.3
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:10:08 +0100] rev 18353
serve: remove connection close hack for Python 2.3 Introduced in 276de216d2c5 and no longer needed - BaseHTTPServer handles connection closing just fine if we don't mess with its internals.
Tue, 15 Jan 2013 01:07:03 +0100 hgweb: pass the actual response body to request.response, not just the length
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:07:03 +0100] rev 18352
hgweb: pass the actual response body to request.response, not just the length This makes it less likely to send a response that doesn't match Content-Length.
Tue, 15 Jan 2013 01:05:12 +0100 hgweb: don't pass empty response chunks on
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18351
hgweb: don't pass empty response chunks on hgweb internals will often produce empty writes - especially when returning compressed data. hgweb is no middleware application and there is thus no reason to pass them on to be processed in other layers.
Tue, 15 Jan 2013 01:05:12 +0100 hgweb: remove handling of any else than strings from request.write
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18350
hgweb: remove handling of any else than strings from request.write Iterators should be returned WSGI style, not written. And apparently all of hgweb do that.
Tue, 15 Jan 2013 01:05:12 +0100 serve: send response headers even if response has no body
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18349
serve: send response headers even if response has no body The headers would usually be sent anyway because the app did a number of writes of empty strings.
Tue, 15 Jan 2013 01:05:12 +0100 hgweb: simplify wsgirequest header handling
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18348
hgweb: simplify wsgirequest header handling Remove leaky header abstraction and prepare for other encodings.
Tue, 15 Jan 2013 01:05:12 +0100 hgweb: make type a mandatory parameter to request.respond
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18347
hgweb: make type a mandatory parameter to request.respond There will thus always be headers and the runtime check can be removed.
Tue, 15 Jan 2013 01:05:12 +0100 hgweb: use Content-Length for pushres
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18346
hgweb: use Content-Length for pushres This prevents some unnecessary http connection close.
Tue, 15 Jan 2013 01:05:12 +0100 hgweb: send Content-Length 0 for zero length response
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18345
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.
Tue, 15 Jan 2013 01:05:12 +0100 archival: tarit should never close the dest passed to it
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18344
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.
Tue, 15 Jan 2013 01:05:12 +0100 mq: checktoppatch should only check if p1 is qtip
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18343
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.
Tue, 15 Jan 2013 01:05:12 +0100 mq: fix qpop of working directory parent patch when not at qtip
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18342
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
Tue, 15 Jan 2013 01:05:12 +0100 largefiles: make log match largefiles in the non-standin location too
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18341
largefiles: make log match largefiles in the non-standin location too Yet another match hack.
Tue, 15 Jan 2013 01:05:12 +0100 log: make log work even if first parameter doesn't exist
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 01:05:12 +0100] rev 18340
log: make log work even if first parameter doesn't exist A slowpath optimization kicked in too often because of wrong indentation.
(0) -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 +10000 +30000 tip