Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Dec 2015 18:45:16 -0800] rev 27189
addrevision: rework generaldelta computation
The old code have multiple explicit tests and code duplications. This makes it
hard to improve the code. We rewrite the logic in a more generic way, not
changing anything of the computed result.
The final goal here is to eventually be able to:
- factor out the default fallback case "try against 'prev'" in a single place
- allow 'lazydeltabase' case to use the smarter general delta code path when
the incoming base does not provide us with a good delta.
Augie Fackler <augie@google.com> [Wed, 11 Nov 2015 21:03:48 -0500] rev 27188
bmstore: close file in a finally block in _writerepo
Also rename the variable to file_ to avoid shadowing a builtin.
Augie Fackler <augie@google.com> [Wed, 11 Nov 2015 21:01:23 -0500] rev 27187
bmstore: add basic clean-state tracking
I'm about to move active-bookmark management into the bmstore. I'd
like to avoid re-writing the bookmarks data (as distinct from the
active bookmark file) if possible, so let's introduce some
dirty-tracking early.
Augie Fackler <augie@google.com> [Wed, 11 Nov 2015 20:45:38 -0500] rev 27186
bookmarks: hoist getbkfile out of bmstore class
It's totally fine that this hook exists, but I don't see a need for it
to live inside the bmstore class.
Augie Fackler <augie@google.com> [Wed, 11 Nov 2015 20:43:25 -0500] rev 27185
bookmarks: document getbkfile method
I'm working on bmstore again, and this function gave me a moment's
pause. Document it to save future readers from any undue confusion.
Yuya Nishihara <yuya@tcha.org> [Sat, 31 Oct 2015 22:50:03 +0900] rev 27184
hgweb: load server settings from --web-conf (
issue4699)
It copies the ui before loading the webconf and passes the copied ui only
to the service. This way, the hgwebdir app can reload configs cleanly.
Andrew Zwicky <andrew.zwicky@gmail.com> [Tue, 17 Nov 2015 16:42:52 -0600] rev 27183
extdiff: correctly handle deleted subrepositories (
issue3153)
Previously, when extdiff was called on two changesets where
a subrepository had been removed, an unexpected KeyError would
be raised.
Now, the missing subrepository will be ignored. This behavior
mirrors the behavior in diffordiffstat from cmdutil.py line
~1138-1153. The KeyError is caught and the revision is
set to None.
try/catch of LookupError around matchmod.narrowmatcher and
sub.status is removed, as LookupError is not raised anywhere
within those methods or deeper calls.
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Nov 2015 13:28:12 +0900] rev 27182
hgweb: make sure command options are set to all ui objects
Before this patch, it was unclear why the httpservice object could read the
server options (e.g. --port) from 'ui'. It just worked because repo.ui is ui.
Yuya Nishihara <yuya@tcha.org> [Sat, 31 Oct 2015 22:26:50 +0900] rev 27181
hgweb: eliminate duck-typing to select hgweb or hgwebdir by command option
Since createservice() was moved to hgweb and hgweb imports both hgweb_mod and
hgwebdir_mod, we no longer have to force hgweb() function to select one of
them by the type of 'o' variable. Let's be explicit!
This patch does not change hgweb() function because it is the interface of
existing WSGI and CGI scripts.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Dec 2015 16:06:20 -0800] rev 27180
addrevision: only use the incoming base if it is a good delta (
issue4975)
Before this change, the 'lazydeltabase' would blindly build a delta using the
base provided by the incoming bundle and try to use it. If that base was far
down the revlog, the delta would be seen as "no good" and we would fall back to
a full text revision.
We now check if the delta is good and fallback to a computing a delta again the
tipmost revision otherwise (as we would do without general delta).
Later changesets will improve the logic to compute the fallback delta using the
general delta logic.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Dec 2015 16:22:49 -0800] rev 27179
addrevision: handle code path not producing delta
We would like to be able to exit the delta generation block without a valid
delta (for a more flexible control flow). So we make sure we do not expand the
"delta" content unless we actually have a delta.
We can do it one level lower because 'delta' is initialised at None anyway. Not
adding a level to the assignment prevent a line length issue.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Dec 2015 15:29:11 -0800] rev 27178
addrevision: rename 'd' to 'delta'
That variable is quite central to the whole function. Giving it a more explicit
name help with code readability.