Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Jan 2013 14:22:43 +0100] rev 18428
hgweb: walk the graph through the changelog
This is necessary to enforce filtering. The result is a bit buggy (may provide
less changeset than expected, but it will stop crashing on filtered revision
access.
Note that changelog.revs can not represents empty iteration like xrange did. So
we have to explicitly prevent call when there is nothing to do.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 11 Jan 2013 01:08:00 +0100] rev 18427
hgweb: use changelog for iteration
Iterating through changelog is necessary to enforce filtering.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 14:19:28 +0100] rev 18426
hgweb: ignore filtered revision in revnav
This changeset checks that a revision is known before adding it to the
navigation.
This will prevent traceback on filtered repository. This changeset result in an
incorrect behaviors, Navigation link may be dropped without any replacement.
However this bad navigation generation is much better than a crash
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 19:29:48 +0100] rev 18425
hgweb: generate revnav in two phase
We first generate revision to link. Then we dispatch them in before, after list.
This will help filtering of unknown revision.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 17 Jan 2013 00:35:01 +0100] rev 18424
rebase: support multiple roots for rebaseset
We have all the necessary mechanism to rebase a set with multiple roots, we only
needed a proper handling of this case we preparing and concluding the rebase.
This changeset des that.
Rebase set with multiple root allows some awesome usage of rebase like:
- rebase all your draft on lastest upstream
hg rebase --dest @ --rev 'draft()'
- exclusion of specific changeset during rebase
hg rebase --rev '42:: - author(Babar)'
- rebase a set of revision were multiple roots are later merged
hg rebase --rev '(18+42)::'
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Jan 2013 05:21:11 +0100] rev 18423
clfilter: stronger detection of filtered changeset in changectx.__init__
We previously let some IndexError spill out of this function.
A new tests is added to check the command that spotted the error.
Sune Foldager <cryo@cyanite.org> [Tue, 11 Dec 2012 20:13:21 +0100] rev 18422
validate: check for spurious incoming filelog entries
Accepting those will lead to "mild corruption", correctly reported as
an error by hg verify, but often not a problem in practice.
Enabled when server.validate is switched on.
Johannes Schlatow <johannes@schlatow.name> [Thu, 17 Jan 2013 01:06:00 +0100] rev 18421
zsh_completion: add descriptive branch names to head revisions
Johannes Schlatow <johannes@schlatow.name> [Thu, 17 Jan 2013 00:54:49 +0100] rev 18420
zsh_completion: add completion of branch 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
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.
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.
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.
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.
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.
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18413
bundlerepo: drop bundlebase wrapper function for basemap
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18412
bundlerepo: remove unused disktiprev attribute
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.
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.
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
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.
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"
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
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.