Thu, 17 Jan 2013 00:54:49 +0100 zsh_completion: add completion of branch names
Johannes Schlatow <johannes@schlatow.name> [Thu, 17 Jan 2013 00:54:49 +0100] rev 18420
zsh_completion: add completion of branch names
Thu, 17 Jan 2013 01:55:50 +0100 zsh_completion: fix issue with overlong branch/tag names
Johannes Schlatow <johannes@schlatow.name> [Thu, 17 Jan 2013 01:55:50 +0100] rev 18419
zsh_completion: fix issue with overlong branch/tag names
Wed, 16 Jan 2013 20:52:56 +0100 bundlerepo: remove old style check of file names
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:52:56 +0100] rev 18418
bundlerepo: remove old style check of file names The old check is no longer needed: The checked paths will be passed on to filelog.__init__ which will prefix the path with 'data/'. A leading '/' will thus not do any harm. And: The paths will be used by an opener which will use a pathauditor. And finally: The old check did not consider Windows paths and was thus insufficient.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: use revlog._checkhash
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18417
bundlerepo: use revlog._checkhash The error message will mention datafile instead of indexfile.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: store validated deltabase rev in basemap instead of node
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18416
bundlerepo: store validated deltabase rev in basemap instead of node This avoids some lookups and aligns bundlerepo more with what revlog do.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: use rev instead of node for iteration in revision()
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18415
bundlerepo: use rev instead of node for iteration in revision() Avoids some lookups and avoids using rev while iterating.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: inline inbundle()
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18414
bundlerepo: inline inbundle() It didn't make it faster, it didn't make the code smaller, it didn't make the code simpler. -1 is never in basemap.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: drop bundlebase wrapper function for basemap
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18413
bundlerepo: drop bundlebase wrapper function for basemap
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: remove unused disktiprev attribute
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18412
bundlerepo: remove unused disktiprev attribute
Wed, 16 Jan 2013 20:41:34 +0100 bundlerepo: improve performance for bundle() revset expression
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:34 +0100] rev 18411
bundlerepo: improve performance for bundle() revset expression Create the set of revision numbers directly instead of creating a list of nodes first.
Wed, 16 Jan 2013 20:41:32 +0100 bundlerepo: fix outdated comment
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:32 +0100] rev 18410
bundlerepo: fix outdated comment Comment was made invalid by 01ee43dda681.
Wed, 16 Jan 2013 13:18:22 +0100 hgweb: pass repo object to revnav construction
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 13:18:22 +0100] rev 18409
hgweb: pass repo object to revnav construction For compatibility with changelog filtering we need access to the changelog, a simple nodefunc is not sufficient, only the changelog and repo have access the filteredrevs information. For the filerevnav version, we use an unfiltered changelog. Linkrev is currently broken with filtering and we need some failsafe to prevent traceback. This is the same approach as the one used in 518c1403838f. The use of filectx.changectx() allowed the previous code to use the 518c1403838f hack. This changeset may result in an incorrect behaviors, Navigation link may point to missing revision. However this bad navigation generation is much better than a plain crash
Mon, 14 Jan 2013 16:55:48 +0100 hgweb: introduction a filerevnav subclass
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 14 Jan 2013 16:55:48 +0100] rev 18408
hgweb: introduction a filerevnav subclass It'll be use to implement the file specific behavior.
Thu, 10 Jan 2013 19:09:32 +0100 hgweb: simplify addition of "(0) navigation entry"
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 19:09:32 +0100] rev 18407
hgweb: simplify addition of "(0) navigation entry"
Mon, 14 Jan 2013 16:30:06 +0100 hgweb: simplify the handling of empty repo
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 14 Jan 2013 16:30:06 +0100] rev 18406
hgweb: simplify the handling of empty repo This abstraction have two advantages: - If the revlog is empty, None of the code bellow is relevant, early returns seems a win. - Abtraction of the 'emptiness' check will help later when we stop relying on nodefunc. A bonus, with filtering, a non-empty revlog may not have '0' revision accessible. It'll be easier to handle with the emptiness test in a dedicated function
Thu, 10 Jan 2013 18:54:50 +0100 hgweb: move hex creation into an object method
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 18:54:50 +0100] rev 18405
hgweb: move hex creation into an object method This is clearer and allow later overwrite.
Thu, 10 Jan 2013 18:59:37 +0100 hgweb: pass nodefunc to the revnav object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 18:59:37 +0100] rev 18404
hgweb: pass nodefunc to the revnav object The issue between hgweb and filtering lay in this function. Moving it into the object itself helps to abstract the erroneous bit.
Tue, 15 Jan 2013 21:17:18 +0100 hgweb: move revnavgen into an object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 15 Jan 2013 21:17:18 +0100] rev 18403
hgweb: move revnavgen into an object For later compatibility with changelog filtering some part of the navigation generation logic will be altered. Those altered part will be different when in the changelog case and in the filelog case. Moving this into an object will allow to use inheritance to override just the part of the logic we need. The aimed logic are for example: - generation of revision 'hex' (different logic for changelog and filelog) - revlog emptyness test - fetching of the first revision of a revlog (may not be 0)
Wed, 16 Jan 2013 12:51:24 +0100 hgweb: `limit` argument is actually `latestonly` renames and enforce
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 12:51:24 +0100] rev 18402
hgweb: `limit` argument is actually `latestonly` renames and enforce The `limit` argument of several generator have only two possible values in practice: 0 and 1. We rename this parameter to `latestonly` and simplify it's handling. The simplification allows us to save fetching of data that we are sure to not consume. Having a function minimal function perimeter will helps future refactoring.
Wed, 16 Jan 2013 11:39:22 -0600 hgweb: add test regarding filtering and hgweb
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Jan 2013 11:39:22 -0600] rev 18401
hgweb: add test regarding filtering and hgweb Since 4d1671b39168 hgweb is broken with filtering. This changeset add test that should pass once it is fixed. Test currently broken are commented and will be uncommented by changeset that fix them. The filelog test is currently passing because we already have some hack in core regarding filelog (see 518c1403838f).
Wed, 16 Jan 2013 14:26:19 +0100 get-with-headers: add a --headeronly switch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Jan 2013 14:26:19 +0100] rev 18400
get-with-headers: add a --headeronly switch In some case we do not care about the actual rendering.
Tue, 15 Jan 2013 22:08:47 -0600 tests: more comment cleanup related to obsolescence
Kevin Bullock <kbullock@ringworld.org> [Tue, 15 Jan 2013 22:08:47 -0600] rev 18399
tests: more comment cleanup related to obsolescence
Wed, 16 Jan 2013 00:46:29 +0100 test: fix in-test comments related to obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Jan 2013 00:46:29 +0100] rev 18398
test: fix in-test comments related to obsolescence The `ui.prevent-unstable` option never made it into core. It always behaves this way when obsolescence feature is enabled. See changesets c5bd753c5bc6, bacf55bd8f90 and 0f5a0a2073a8 for details.
Wed, 16 Jan 2013 00:12:01 +0100 stream_in: write the remote branchcache for a usage as wide as possible
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 00:12:01 +0100] rev 18397
stream_in: write the remote branchcache for a usage as wide as possible Writing cache for unfiltered repo only is barely useful, Most repo user are now at least use the `hidden` filter. This changeset now assigns the remote cache for a filter as low as possible for a wider reuse as possible.
Tue, 15 Jan 2013 23:33:07 +0100 destroyed: update `unserved` branchcache instead
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 15 Jan 2013 23:33:07 +0100] rev 18396
destroyed: update `unserved` branchcache instead Before this changesets the `destroyed` function updated the branchcache for unfiltered repository. As seen in a previous changeset, Read only repo does not cares about the unfiltered repo. We now update it for `unserved`.
Wed, 16 Jan 2013 00:09:26 +0100 destroyed: drop complex branchcache rebuilt logic
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 00:09:26 +0100] rev 18395
destroyed: drop complex branchcache rebuilt logic The strip code used a trick to lower the cost of branchcache update after a strip. However is less necessary since we have branchcache collaboration. Invalid branchcache are likely to be cheaply rebuilt again a near subset of the repo. Moreover, this trick would need update to be relevant in the now filtered repository world. It currently update the unfiltered branchcache that few people cares about. Make it smarter on that aspect would need complexes update of the calling logic So this mechanism is: - Arguably needed, - Currently irrelevant, - Hard to update and I'm dropping it. We now update the branchcache in all case by courtesy of the read only reader. This changeset have a few expected impact on the testsuite are different cache are updated.
Wed, 16 Jan 2013 00:08:08 +0100 branchmap: update cache of 'unserved' filter on new changesets
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 00:08:08 +0100] rev 18394
branchmap: update cache of 'unserved' filter on new changesets The `commitctx` and `addchangegroup` methods of repo upgrade branchcache after completion. This behavior aims to keep the branchcache in sync for read only process as hgweb. See ee317dbfb9d0 for details. Since changelog filtering is used, those calls only update the cache for unfiltered repo. One of no interest for typical read only process like hgweb. Note: By chance in basic case, `repo.unfiltered() == repo.filtered('unserved')` This changesets have the "unserved" cache updated instead. I think this is the only cache that matter for hgweb. We could imagine updating all possible branchcaches instead but: - I'm not sure it would have any benefit impact. It may even increase the odd of all cache being invalidated. - This is more complicated change. So I'm going for updating a single cache only which is already better that updating a cache nobody cares about. This changeset have a few expected impact on the testsuite are different cache are updated.
Wed, 16 Jan 2013 02:01:11 +0100 tests: make test-hgweb.t output stable
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 02:01:11 +0100] rev 18393
tests: make test-hgweb.t output stable Instability introduced in combination of a4d7fd7ad1f7 and e389a25e7e60.
Thu, 10 Jan 2013 18:52:17 +0100 hgweb: ensure _navseq yield strictly increasing numbers
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 18:52:17 +0100] rev 18392
hgweb: ensure _navseq yield strictly increasing numbers This is not hard and allows to drop hack in the customer code.
Thu, 10 Jan 2013 18:47:48 +0100 hgweb: better names for _navseq arguments
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 18:47:48 +0100] rev 18391
hgweb: better names for _navseq arguments The old names were misleading.
Thu, 10 Jan 2013 18:44:26 +0100 hgweb: drop recursivity in _navseq
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 18:44:26 +0100] rev 18390
hgweb: drop recursivity in _navseq This is totally not needed.
Tue, 15 Jan 2013 12:11:18 +0100 hgweb: move the `seq` function out of the revnavgen scope
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 15 Jan 2013 12:11:18 +0100] rev 18389
hgweb: move the `seq` function out of the revnavgen scope There is not reason for it to be a in there. And this function could use a major reworks.
Mon, 14 Jan 2013 16:52:35 +0100 hgweb: simplify return value creation in for navgen
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 14 Jan 2013 16:52:35 +0100] rev 18388
hgweb: simplify return value creation in for navgen We now have access to better syntax allowing a clearer version.
Thu, 10 Jan 2013 18:55:50 +0100 hgweb: do not access first changeset with a string
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 18:55:50 +0100] rev 18387
hgweb: do not access first changeset with a string There is not reason not to use an int
Tue, 15 Jan 2013 23:30:10 +0100 refactoring: use unlinkpath with ignoremissing
Mads Kiilerich <madski@unity3d.com> [Tue, 15 Jan 2013 23:30:10 +0100] rev 18386
refactoring: use unlinkpath with ignoremissing
Tue, 15 Jan 2013 23:30:10 +0100 docs: "deprecate" checkchanged and checkconflicts in merge-tool configuration
Mads Kiilerich <madski@unity3d.com> [Tue, 15 Jan 2013 23:30:10 +0100] rev 18385
docs: "deprecate" checkchanged and checkconflicts in merge-tool configuration These settings were replaced by check=changed and check=conflicts in a912f26777d3. There is no reason to announce two different ways to achieve the same. The old way should be kept but not announced.
Tue, 15 Jan 2013 23:30:10 +0100 tests: run with PYTHONHASHSEED=random
Mads Kiilerich <madski@unity3d.com> [Tue, 15 Jan 2013 23:30:10 +0100] rev 18384
tests: run with PYTHONHASHSEED=random Python set and dict iteration order is in principle undefined but usually 'quite stable'. Setting PYTHONHASHSEED=random will make the iteration order more random in Python 2.6.8 and 2.7.3 and where it has been backported. This can thus help spot dependencies on undefined behaviour and prevent future problems.
Tue, 15 Jan 2013 13:33:28 -0800 run-tests: exit cleanly if parallel run is interrupted
Bryan O'Sullivan <bryano@fb.com> [Tue, 15 Jan 2013 13:33:28 -0800] rev 18383
run-tests: exit cleanly if parallel run is interrupted If interrupted while running with "--jobs N", run-tests asynchronously spewed a bunch of output and backtraces from both the master and slave processes, leaving the terminal full of goop. This patch makes it behave more sensibly.
Sun, 13 Jan 2013 01:39:16 -0600 filtering: rename filters to their antonyms
Kevin Bullock <kbullock@ringworld.org> [Sun, 13 Jan 2013 01:39:16 -0600] rev 18382
filtering: rename filters to their antonyms Now that changelog filtering is in place, it's become evident that naming the filters according to the set of revs _not_ included in the filtered changelog is confusing. This is especially evident in the collaborative branch cache scheme. This changes the names of the filters to reflect the revs that _are_ included: hidden -> visible unserved -> served mutable -> immutable impactable -> base repoview.filteredrevs is renamed to filterrevs, so that callers read a bit more sensibly, e.g.: filterrevs('visible') # filter revs according to what's visible
Tue, 15 Jan 2013 20:55:47 +0100 clone: don't include empty revlogs in stream
Mads Kiilerich <madski@unity3d.com> [Tue, 15 Jan 2013 20:55:47 +0100] rev 18381
clone: don't include empty revlogs in stream
Tue, 15 Jan 2013 20:54:57 +0100 serve: don't send any content headers with 304 responses
Mads Kiilerich <madski@unity3d.com> [Tue, 15 Jan 2013 20:54:57 +0100] rev 18380
serve: don't send any content headers with 304 responses Fixes HTTP protocol violation introduced in cf5c76017e11. 'hg serve' would show a stacktrace when loading pages that not had been modified. There was test coverage for this, but the wrong response headers wasn't shown and thus not detected.
Tue, 15 Jan 2013 18:42:04 +0100 tests: fix doctest stability over Python versions
Mads Kiilerich <madski@unity3d.com> [Tue, 15 Jan 2013 18:42:04 +0100] rev 18379
tests: fix doctest stability over Python versions pprint ain't pretty in Python 2.4: Changed in version 2.5: Dictionaries are sorted by key before the display is computed; before 2.5, a dictionary was sorted only if its display required more than one line, although that wasn’t documented. Fixes issue introduced in 404feac78b8a.
Tue, 15 Jan 2013 02:59:14 +0100 tests: stabilize doctest output
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:14 +0100] rev 18378
tests: stabilize doctest output Avoid dependencies to dict iteration order.
Tue, 15 Jan 2013 02:59:14 +0100 tests: make test-hook.t output more stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:14 +0100] rev 18377
tests: make test-hook.t output more stable
Thu, 13 Dec 2012 23:15:51 +0100 convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com> [Thu, 13 Dec 2012 23:15:51 +0100] rev 18376
convert: make toposort order stable when multiple orderings are possible The output of some tests are changed. Not necessarily to the better, just other valid permutations.
Tue, 15 Jan 2013 02:59:14 +0100 convert: report cvsps branchpoints sorted
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:14 +0100] rev 18375
convert: report cvsps branchpoints sorted
Tue, 15 Jan 2013 02:59:14 +0100 convert: process subversion branch in a sorted order
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:14 +0100] rev 18374
convert: process subversion branch in a sorted order
Tue, 15 Jan 2013 02:59:14 +0100 convert: process missing branches in sorted order
Mads Kiilerich <mads@kiilerich.com> [Tue, 15 Jan 2013 02:59:14 +0100] rev 18373
convert: process missing branches in sorted order
(0) -10000 -3000 -1000 -300 -100 -48 +48 +100 +300 +1000 +3000 +10000 +30000 tip