Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 22:11:10 -0700] rev 37042
rebase: pass in "user" instead of "ctx" to conclude[memory]node()
This was the only remaining part of the context object that was
needed.
Differential Revision: https://phab.mercurial-scm.org/D2923
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 21:59:04 -0700] rev 37041
rebase: look up default date outside of conclude[memory]node()
Differential Revision: https://phab.mercurial-scm.org/D2922
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 21:58:32 -0700] rev 37040
rebase: move config override out of conclude[memory]node()
Differential Revision: https://phab.mercurial-scm.org/D2921
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 21:53:36 -0700] rev 37039
rebase: pass in entire "overrides" dict to conclude[memory]node()
As with previous patches, this was done the same way in both
functions, so let's make the caller do it instead.
Differential Revision: https://phab.mercurial-scm.org/D2920
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 21:49:09 -0700] rev 37038
rebase: pass in "keepbranch" to conclude[memory]node()
Both functions calculated the same "keepbranch" value from the
"keepbranches" we passed in, so let's make the caller do it instead.
Differential Revision: https://phab.mercurial-scm.org/D2919
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 21:45:48 -0700] rev 37037
rebase: inline _makextrafn() now that we have only one caller
Also avoid even creating a function since we just end up calling it
right away.
Differential Revision: https://phab.mercurial-scm.org/D2918
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 21:41:53 -0700] rev 37036
rebase: pass in "extra" itself into conclude[memory]node()
We were passing in a function instead for no clear reason (probably
historical, but I haven't bothered looking).
Differential Revision: https://phab.mercurial-scm.org/D2917
Martin von Zweigbergk <martinvonz@google.com> [Wed, 21 Mar 2018 11:05:32 -0700] rev 37035
rebase: look up commit message to reuse outside of conclude[memory]node()
This was done the same way in both functions, so let's let the single
caller do it.
Differential Revision: https://phab.mercurial-scm.org/D2916
Martin von Zweigbergk <martinvonz@google.com> [Wed, 21 Mar 2018 11:04:13 -0700] rev 37034
rebase: pass in ctx, not rev, to conclude[memory]node()
They both need it and there's no locking that might make the results
different, so let's do it in one place. This also lets us move out
more common code in the following patches.
Differential Revision: https://phab.mercurial-scm.org/D2915
Martin von Zweigbergk <martinvonz@google.com> [Wed, 21 Mar 2018 11:03:31 -0700] rev 37033
rebase: extract common _concludenode()
_rebasenode() and _finishrebase() had a lot of code in common. This
commit extracts some of that. This means we will also have a single
caller of concludenode() and concludememorynode(), which gives us a
place to put code that is common between those two functions (which is
quite a bit).
Differential Revision: https://phab.mercurial-scm.org/D2914
Martin von Zweigbergk <martinvonz@google.com> [Wed, 21 Mar 2018 11:01:19 -0700] rev 37032
rebase: store rebase state after each commit
Before this patch, we stored the rebase state early in the processing
of a node, before we updated the rebase state to indicate that the
node was processed. This meant that we could redo the working copy
merge and run into conflicts. However, this only happened in the
--collapse case if the rebase was interrupted while editing the final
commit message; in the case earlier interruptions, we would instead
detect the in-process revision by finding two dirstate parents.
This patch moves the writing of the rebase state to after we have
completed the revision completely, and, importantly, after we have
updated the rebase state to mark it done. This means we'll realize
that all nodes have been rebased in the case mentioned above of
editing the final commit message of a --collapse. See change to test
case.
I also moved the writing outside of the large if/elif block in
_rebasenode(). This shouldn't matter much, but seems cleaner. One
observable effect is if rebase was interrupted just after ignoring an
obsolete node ("not rebasing ####, already in destination"), we used
to come up with the same decision after --continue too, but after this
patch we'll instead say "already rebased ###". This seems more
consistent, since that's what we would do with obsolete nodes that had
been marked done earlier in the process (not only just before the
interruption).
Differential Revision: https://phab.mercurial-scm.org/D2913
Martin von Zweigbergk <martinvonz@google.com> [Wed, 21 Mar 2018 10:46:00 -0700] rev 37031
rebase: register status file generator only once when using single transaction
rebase.storestatus() behaved differently depending on whether a
transaction is passed to it. If a transaction is passed, it registers
a "file generator" that runs when the transaction commits. If no
transaction was passed, it writes the rebase state immediately. This
imprecise timing of the writing makes it hard to reason about, so
let's make it more explicit which behavior we're getting by checking
if we have a transaction before calling it. For the single-transaction
case, move the call to storestatus(tr) early and do it only once since
it's only going to write the file (at most) once anyway.
Differential Revision: https://phab.mercurial-scm.org/D2912
Martin von Zweigbergk <martinvonz@google.com> [Sun, 18 Mar 2018 22:26:23 -0700] rev 37030
tests: add some more tests to test-rebase-collapse.t
Some of these are currently broken.
Differential Revision: https://phab.mercurial-scm.org/D2911
Martin von Zweigbergk <martinvonz@google.com> [Sun, 18 Mar 2018 15:25:23 -0700] rev 37029
tests: use drawdag in test-rebase-collapse.t
This makes the tests shorter (410 lines -> 240 lines), faster (17s ->
12s), and easier to read (the setup for each test case is just before
the test, and we can refer to commits by name).
Differential Revision: https://phab.mercurial-scm.org/D2910
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 17:25:16 -0700] rev 37028
rebase: remove unused default argument values from conclude[memory]node()
It's only "commitmsg" that we don't always pass.
Differential Revision: https://phab.mercurial-scm.org/D2909
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 17:30:08 -0700] rev 37027
rebase: get "inmemory" state directly from rebase runtime
As far as I can tell, rbsrt.inmemory is equivalent to
rbsrt.wctx.isinmemory(), so let's use the shorter form.
Differential Revision: https://phab.mercurial-scm.org/D2908
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Dec 2017 15:56:07 +0530] rev 37026
commands: use keyword arguments in update function
This will help us in having a dictionary with the values of all the arguments
and we can add more flags without adding an argument to the function.
Differential Revision: https://phab.mercurial-scm.org/D2896
Martin von Zweigbergk <martinvonz@google.com> [Tue, 20 Mar 2018 13:53:02 -0700] rev 37025
rebase: pass "inmemory" directly to _definedestmap()
We no longer reassign rbsrt.inmemory in _definedestmap(), so we don't
need to pass the whole rebase runtime instance anymore, thus
making it clear that it won't be updated.
Differential Revision: https://phab.mercurial-scm.org/D2905
Anton Shestakov <av6@dwimlabs.net> [Tue, 20 Mar 2018 14:19:28 +0800] rev 37024
hgweb: explain instabilities of unstable changesets (the rest of the themes)
Matt Harbison <matt_harbison@yahoo.com> [Tue, 20 Mar 2018 21:10:29 -0400] rev 37023
test-merge-tools: stabilize for Windows
See
fe5c4b795999.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 20 Mar 2018 20:33:37 -0400] rev 37022
test-http-protocol: drop an extraneous glob for Windows
Martin von Zweigbergk <martinvonz@google.com> [Mon, 19 Mar 2018 08:07:18 -0700] rev 37021
merge with stable
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 14:16:47 +0900] rev 37020
hgweb: evaluate the "default" value as template
Strictly speaking, everything in the map file is a template. So let's not
take out an unparsed template string.
Yuya Nishihara <yuya@tcha.org> [Fri, 16 Mar 2018 21:39:32 +0900] rev 37019
templater: use named function to expand template against mapping dict (API)
And replace __call__(t, **mapping) in favor of generate(t, mapping). I prefer
a named function here since the templater isn't a simple function-like object.
.. api::
The templater is no longer callable. Use ``templater.generate(t, mapping)``
instead of ``templater(t, **pycompat.strkwargs(mapping))``.
Yuya Nishihara <yuya@tcha.org> [Mon, 19 Mar 2018 21:09:23 +0900] rev 37018
highlight: peek Content-Type header set by hgweb
There should be no need to re-render the mimetype template since it's set
before dispatching webcommands.
Anton Shestakov <av6@dwimlabs.net> [Tue, 20 Mar 2018 14:12:05 +0800] rev 37017
obsolete: add a note that explains creating aliases for marker flags
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 Mar 2018 10:34:09 -0500] rev 37016
repair: rename _backup to backupbundle
A future commit will introduce a caller from outside the module.
The function should have already been public because histedit was
calling it.
Differential Revision: https://phab.mercurial-scm.org/D2666
Yuya Nishihara <yuya@tcha.org> [Mon, 19 Mar 2018 22:10:40 +0900] rev 37015
templatefuncs: do not stringify result of if*() expression
Returning a generator means that the result is a byte string. I can't find
any reason to make the "if" condition lazy since it is evaluated anyway
when {if()} has to be evaluated. So let's simply make if*() return an input
expression unmodified.
Yuya Nishihara <yuya@tcha.org> [Mon, 19 Mar 2018 21:55:02 +0900] rev 37014
templater: add brief doc about internal data types
Hopefully this will help reviewing upcoming my series. Start small.
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 13 Mar 2018 11:17:10 -0700] rev 37013
debugcommands: support sending HTTP requests with debugwireproto
We implement an action that can issue an HTTP request. We can define
headers via arguments and specify a file to use for the HTTP request
body.
The request uses the HTTP peer's opener, which is already configured
for auth, etc. This is both good and bad. Good in that we get some
nice behavior out of the box. Bad in that some HTTP request headers
are added automatically.
Differential Revision: https://phab.mercurial-scm.org/D2841