Thu, 01 May 2014 19:24:03 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 19:24:03 -0500] rev 21220
merge with stable
Thu, 01 May 2014 17:48:02 -0500 Added signature for changeset 2195ac506c6a stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 17:48:02 -0500] rev 21219
Added signature for changeset 2195ac506c6a
Thu, 01 May 2014 17:47:24 -0500 Added tag 3.0 for changeset 2195ac506c6a stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 17:47:24 -0500] rev 21218
Added tag 3.0 for changeset 2195ac506c6a
Thu, 01 May 2014 14:07:04 -0700 revset: directly use __contains__ instead of a lambda stable 3.0
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 01 May 2014 14:07:04 -0700] rev 21217
revset: directly use __contains__ instead of a lambda We get rid of lambda in a bunch of other place. This is equivalent and much faster. (no new timing as this is the same change as three other changesets)
Thu, 01 May 2014 14:33:06 -0500 tests: suppress spurious lchmod error from unzip (issue4088) stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 14:33:06 -0500] rev 21216
tests: suppress spurious lchmod error from unzip (issue4088) Because lchmod doesn't exist on Linux, unzip should be built without lchmod support. A few distros get this wrong.
Thu, 01 May 2014 12:15:28 -0700 orderedlazyset: directly use __contains__ instead of a lambda stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 01 May 2014 12:15:28 -0700] rev 21215
orderedlazyset: directly use __contains__ instead of a lambda We apply the same speedup as in spanset, getting rid of the useless lambda. (No new timing, as this is the very same change)
Thu, 01 May 2014 12:15:00 -0700 lazyset: directly use __contains__ instead of a lambda stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 01 May 2014 12:15:00 -0700] rev 21214
lazyset: directly use __contains__ instead of a lambda We apply the same speedup as in spanset, getting rid of the useless lambda. (No new timing, as this is the very same change)
Thu, 01 May 2014 13:42:12 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 13:42:12 -0500] rev 21213
merge with i18n
Wed, 30 Apr 2014 23:20:46 +0900 i18n-ja: synchronized with e9c2f76be74b stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Apr 2014 23:20:46 +0900] rev 21212
i18n-ja: synchronized with e9c2f76be74b
Wed, 30 Apr 2014 11:01:50 -0300 i18n-pt_BR: synchronized with e9c2f76be74b stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 30 Apr 2014 11:01:50 -0300] rev 21211
i18n-pt_BR: synchronized with e9c2f76be74b
Thu, 01 May 2014 16:47:50 +0200 rebase: empty revset should be a gentle no-op with exit code 1, not an error stable
Mads Kiilerich <madski@unity3d.com> [Thu, 01 May 2014 16:47:50 +0200] rev 21210
rebase: empty revset should be a gentle no-op with exit code 1, not an error
Thu, 01 May 2014 15:12:49 +0200 largefiles: better handling of log from other working directory (issue4236) stable
Mads Kiilerich <madski@unity3d.com> [Thu, 01 May 2014 15:12:49 +0200] rev 21209
largefiles: better handling of log from other working directory (issue4236) When invoked from another directory, the matchers m._cwd will be the absolute path. The code for calculating relative path to .hglf did not consider that and log would fail with weird errors and paths. For now, just don't do any largefile magic when invoked from other directories.
Thu, 01 May 2014 09:42:23 -0500 tests: add repository check for pyflakes test stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 09:42:23 -0500] rev 21208
tests: add repository check for pyflakes test If this test was run from a tarball with no Mercurial repository, it would fail because 'hg manifest' didn't work.
Sat, 26 Apr 2014 00:38:02 -0700 spanset: directly use __contains__ instead of a lambda stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 26 Apr 2014 00:38:02 -0700] rev 21207
spanset: directly use __contains__ instead of a lambda Spanset are massively used in revset. First because the initial subset itself is a repo wide spanset. We speed up the __and__ operation by getting rid of a gratuitous lambda call. A more long terms solution would be to: 1. speed up operation between spansets, 2. have a special smartset for `all` revisions. In the mean time, this is a very simple fix that buyback some of the performance regression. Below is performance benchmark for trival `and` operation between two spansets. (Run on an unspecified fairly large repository.) revset tip:0 2.9.2) wall 0.282543 comb 0.280000 user 0.260000 sys 0.020000 (best of 35) before) wall 0.819181 comb 0.820000 user 0.820000 sys 0.000000 (best of 12) after) wall 0.645358 comb 0.650000 user 0.650000 sys 0.000000 (best of 16) Proof of concept implementation of an `all` smartset brings this to 0.10 but it's too invasive for stable.
Wed, 30 Apr 2014 15:36:38 -0700 transaction: fix file descriptor leak for journal.backupfiles stable
Durham Goode <durham@fb.com> [Wed, 30 Apr 2014 15:36:38 -0700] rev 21206
transaction: fix file descriptor leak for journal.backupfiles The journal.backupfiles descriptor wasn't being closed. This resulted in hgsubversion test runs having a bagillion descriptors open, which crashed on platforms with low open file limits (like OSX).
Fri, 25 Apr 2014 18:00:07 -0700 revset: also inline spanset._contained in __len__ stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Apr 2014 18:00:07 -0700] rev 21205
revset: also inline spanset._contained in __len__ For consistency with what happen in `__contains__`, we inline the range test into `__len__` too.
Mon, 28 Apr 2014 15:15:36 -0700 revset: inline spanset containment check (fix perf regression) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Apr 2014 15:15:36 -0700] rev 21204
revset: inline spanset containment check (fix perf regression) Calling a function is super expensive in python. We inline the trivial range comparison to get back to more sensible performance on common revset operation. Benchmark result below: Revision mapping: 0) 3f83fc5cfe71 2.9.2 release 1) bcfd44abad93 current @ 2) This revision revset #0: public() 0) wall 0.010890 comb 0.010000 user 0.010000 sys 0.000000 (best of 201) 1) wall 0.012109 comb 0.010000 user 0.010000 sys 0.000000 (best of 199) 2) wall 0.012211 comb 0.020000 user 0.020000 sys 0.000000 (best of 197) revset #1: :10000 and public() 0) wall 0.007141 comb 0.010000 user 0.010000 sys 0.000000 (best of 361) 1) wall 0.014139 comb 0.010000 user 0.010000 sys 0.000000 (best of 186) 2) wall 0.008334 comb 0.010000 user 0.010000 sys 0.000000 (best of 308) revset #2: draft() 0) wall 0.009610 comb 0.010000 user 0.010000 sys 0.000000 (best of 279) 1) wall 0.010942 comb 0.010000 user 0.010000 sys 0.000000 (best of 243) 2) wall 0.011036 comb 0.010000 user 0.010000 sys 0.000000 (best of 239) revset #3: :10000 and draft() 0) wall 0.006852 comb 0.010000 user 0.010000 sys 0.000000 (best of 383) 1) wall 0.014641 comb 0.010000 user 0.010000 sys 0.000000 (best of 183) 2) wall 0.008314 comb 0.010000 user 0.010000 sys 0.000000 (best of 299) We can see this changeset gains back the regression for `and` operation on spanset. We are still a bit slowerfor the `public()` and `draft()`. Predicates not touched by this changeset.
Wed, 30 Apr 2014 14:19:01 -0500 ancestor: silence multiple ancestor warning outside of merge (issue4234) stable
Matt Mackall <mpm@selenic.com> [Wed, 30 Apr 2014 14:19:01 -0500] rev 21203
ancestor: silence multiple ancestor warning outside of merge (issue4234) The current situation is a bit of a layering violation as merge-specific knowledge is pushed down to lower layers and leaks merge assumptions into other code paths. Here, we simply silence the warning with a hack. Both the warning and the hack will probably go away in the near future when bid merge is made the default.
Fri, 25 Apr 2014 13:44:51 -0700 revsetbenchmark: fix error raising stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Apr 2014 13:44:51 -0700] rev 21202
revsetbenchmark: fix error raising We want to display the commands, not all arguments of the function. (The old code actually crash, failing to joining a list of lists.)
Mon, 28 Apr 2014 16:28:52 -0700 revset: fix revision filtering in spanset.contains (regression) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Apr 2014 16:28:52 -0700] rev 21201
revset: fix revision filtering in spanset.contains (regression) The argument is `x` but the variable tested for filtering is `rev`. `rev` happens to be a revset methods, ... never part of the filtered revs. This method is now using `rev` for everything.
Mon, 28 Apr 2014 17:25:36 -0700 graft: do not use `.remove` on a smart set (regression) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Apr 2014 17:25:36 -0700] rev 21200
graft: do not use `.remove` on a smart set (regression) Revset calls use to return a list. Graft use to mutate that list. We cannot do this anymore leading to a crash when grafting multiple changeset with a revset. File ".../mercurial/commands.py", line 3117, in graft revs.remove(rev) AttributeError: '_addset' object has no attribute 'remove' We are late in code-freeze so we make the shortest possible fix by turning it back to a list.
Mon, 28 Apr 2014 15:09:23 -0700 help: clarify distinction among `contains`/`file`/`filelog` stable
Greg Hurrell <glh@fb.com> [Mon, 28 Apr 2014 15:09:23 -0700] rev 21199
help: clarify distinction among `contains`/`file`/`filelog` For a Mercurial new-comer, the distinction between `contains(x)`, `file(x)`, and `filelog(x)` in the "revsets" help page may not be obvious. This commit tries to make things more obvious (text based on an explanation from Matt in an FB group thread).
Thu, 24 Apr 2014 16:47:22 +0200 discovery: don't report all "unsynced" remote heads (issue4230) stable
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Apr 2014 16:47:22 +0200] rev 21198
discovery: don't report all "unsynced" remote heads (issue4230) 8a9e0b523d2d made discovery more helpful - too helpful for some extreme use cases. Instead, we arbitrarily limit the list it at 4 and add 'or more'.
Wed, 23 Apr 2014 13:51:35 +0200 rebase: don't abort if we're asked to rebase an empty revset stable
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Apr 2014 13:51:35 +0200] rev 21197
rebase: don't abort if we're asked to rebase an empty revset The documentation says we exit 1 if we have nothing to do, so avoid breaking that contract when we're passed an empty revset. This was changed in http://www.selenic.com/hg/rev/a259f7b488ab to improve the error message; keep the improved message, just not the abort.
Fri, 25 Apr 2014 22:34:09 -0400 largefiles: remove directories emptied after their files are moved (issue3515) stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 25 Apr 2014 22:34:09 -0400] rev 21196
largefiles: remove directories emptied after their files are moved (issue3515)
Sat, 26 Apr 2014 18:13:06 +0900 cmdserver: forcibly use L channel to read password input (issue3161) stable
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Apr 2014 18:13:06 +0900] rev 21195
cmdserver: forcibly use L channel to read password input (issue3161) Command server is designed to use the channel protocol even if the server process is accessible to tty, whereas vanilla hg should be able to read password from tty in that case. So it isn't enough to swap sys.stdin: # works only if the server process is detached from the console sys.stdin = self.fin getpass.getpass('') sys.stdin = oldin or test isatty: # vanilla hg can't talk to tty if stdin is redirected if self._isatty(self.fin): return getpass.getpass('') else: ... Since ui.nontty flag is undocumented and command-server channels don't provide isatty(), this change won't affect the other uses of ui._isatty(). issue3161 also suggests to provide some context of messages. I think it can be implemented by using the generic templating function.
Tue, 29 Apr 2014 12:37:36 +0900 killdaemons: correct typo of _check() function caught by pyflakes stable
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Apr 2014 12:37:36 +0900] rev 21194
killdaemons: correct typo of _check() function caught by pyflakes
Tue, 29 Apr 2014 12:35:50 +0900 win32: add missing definition of _ERROR_NO_MORE_FILES caught by pyflakes stable
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Apr 2014 12:35:50 +0900] rev 21193
win32: add missing definition of _ERROR_NO_MORE_FILES caught by pyflakes
Tue, 29 Apr 2014 12:35:02 +0900 exchange: fix invalid reference to bundle2.UnknownPartError caught by pyflakes stable
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Apr 2014 12:35:02 +0900] rev 21192
exchange: fix invalid reference to bundle2.UnknownPartError caught by pyflakes
Tue, 29 Apr 2014 11:02:40 +0900 match: fix NameError 'pat' on overflow of regex pattern length stable
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Apr 2014 11:02:40 +0900] rev 21191
match: fix NameError 'pat' on overflow of regex pattern length 'pat' was renamed to 'regex' in 9d28fd795215.
Sun, 27 Apr 2014 15:09:48 +0900 color: add missing handling of stderr capture introduced by 350dc24a553d stable
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Apr 2014 15:09:48 +0900] rev 21190
color: add missing handling of stderr capture introduced by 350dc24a553d It wouldn't raise exception without this change, but _bufferstates was wrong because of missing _bufferstates.pop() in colorui.popbuffer().
Wed, 23 Apr 2014 20:23:30 +0100 hgweb: replace excanvas.js with a newer version stable
Javi Merino <cibervicho@gmail.com> [Wed, 23 Apr 2014 20:23:30 +0100] rev 21189
hgweb: replace excanvas.js with a newer version The current version of excanvas is unknown. Substitute it with the latest version from the excanvas website: http://code.google.com/p/explorercanvas/ Instead of using the "compiled" version, just use the readable one.
Wed, 23 Apr 2014 23:29:55 +0200 httppeer: reintroduce _abort that accidentally was removed in 167047ba3cfa stable
Mads Kiilerich <madski@unity3d.com> [Wed, 23 Apr 2014 23:29:55 +0200] rev 21188
httppeer: reintroduce _abort that accidentally was removed in 167047ba3cfa Including the missing test coverage that would have caught it.
Mon, 21 Apr 2014 16:13:15 -0700 bundle2: gracefully handle hook abort stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 16:13:15 -0700] rev 21187
bundle2: gracefully handle hook abort We make sure any exceptions raised during the whole span of handling bundle2 processing are decorated. This let us catch exceptions raised by hooks prior to transaction commit.
Mon, 21 Apr 2014 17:51:58 -0700 bundle2: gracefully handle PushRaced error during unbundle stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 17:51:58 -0700] rev 21186
bundle2: gracefully handle PushRaced error during unbundle Same drill again. We catch the PushRaced error, check if it cames from a bundle2 processing, if so we turn it into a bundle2 with a part transporting error information to be reraised client side.
Mon, 21 Apr 2014 20:04:54 -0700 bundle2: add an error message to push race error stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 20:04:54 -0700] rev 21185
bundle2: add an error message to push race error Errors with no explanations makes my uncle Bob sad.
Mon, 21 Apr 2014 18:59:09 -0700 bundle2: fix raising errors during heads checking stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 18:59:09 -0700] rev 21184
bundle2: fix raising errors during heads checking If the heads on the server differ from the ones reported seen by the client at bundle time, we raise a PushRaced exception. However, the part raising the exception was broken. To fix it, we move the PushRaced class in the error module so it can be accessible everywhere without an import cycle. A test is also added to prevent regression.
Mon, 21 Apr 2014 16:02:03 -0700 bundle2: gracefully handle UnknownPartError during unbundle stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 16:02:03 -0700] rev 21183
bundle2: gracefully handle UnknownPartError during unbundle Same as for Abort error, we catch the error, encode it into a bundle2 reply (expected by the client) and stream this reply. The client processing of the error will raise the exception again.
Tue, 22 Apr 2014 11:41:34 -0700 bundle2: catch UnknownPartError during local push stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Apr 2014 11:41:34 -0700] rev 21182
bundle2: catch UnknownPartError during local push When doing local push, UnknownPartError from the server will be raised directly to the client. We need to catch them too.
Mon, 21 Apr 2014 19:43:01 -0700 bundle2: catch UnknownPartError during pull stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 19:43:01 -0700] rev 21181
bundle2: catch UnknownPartError during pull We narrow the exception catching while pulling.
Mon, 21 Apr 2014 19:42:51 -0700 bundle2: catch UnknownPartError during push stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 19:42:51 -0700] rev 21180
bundle2: catch UnknownPartError during push We narrow the exception catching while unbundling the push reply.
Mon, 21 Apr 2014 19:42:40 -0700 bundle2: use a more specific UnknownPartError when no handler is found stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 19:42:40 -0700] rev 21179
bundle2: use a more specific UnknownPartError when no handler is found KeyError is very generic, we need something more specific for proper error handling.
Mon, 21 Apr 2014 15:59:55 -0700 bundle2: make error testing more modular stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 15:59:55 -0700] rev 21178
bundle2: make error testing more modular We have more than Abort to test.
Mon, 21 Apr 2014 15:48:52 -0700 bundle2: gracefully handle abort during unbundle stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 15:48:52 -0700] rev 21177
bundle2: gracefully handle abort during unbundle Clients expect a bundle2 reply to their bundle2 submission. So we catch the Abort error and turn it into a bundle2 containing a part transporting the exception data. The unbundling of this reply will raise the error again.
Tue, 22 Apr 2014 11:22:41 -0700 bundle2: decorate exception raised during bundle processing stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Apr 2014 11:22:41 -0700] rev 21176
bundle2: decorate exception raised during bundle processing This is a small hack to help us do some graceful error handling in bundle2 without major refactoring. See embedded comment for details.
Tue, 22 Apr 2014 10:14:16 -0300 histedit, i18n: replace '+' with concatenation to make hggettext happy stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 22 Apr 2014 10:14:16 -0300] rev 21175
histedit, i18n: replace '+' with concatenation to make hggettext happy
Tue, 22 Apr 2014 10:12:21 -0300 commands: fix typo in --graph description stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 22 Apr 2014 10:12:21 -0300] rev 21174
commands: fix typo in --graph description
Tue, 22 Apr 2014 10:12:13 -0300 revset, i18n: add translator comment to "only" stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 22 Apr 2014 10:12:13 -0300] rev 21173
revset, i18n: add translator comment to "only"
Mon, 21 Apr 2014 20:24:54 +0200 merge: improve notes for listing the bids for ambiguous merges stable
Mads Kiilerich <madski@unity3d.com> [Mon, 21 Apr 2014 20:24:54 +0200] rev 21172
merge: improve notes for listing the bids for ambiguous merges
Fri, 18 Apr 2014 13:33:20 +0200 merge: tell the user when we are using bid merge stable
Mads Kiilerich <madski@unity3d.com> [Fri, 18 Apr 2014 13:33:20 +0200] rev 21171
merge: tell the user when we are using bid merge Bid merge is a new rarely used feature that the user explicitly enabled - we should tell/warn when the user actually is using it, just like we tell when we not are using it. Give a message like note: merging 3b08d01b0ab5+ and adfe50279922 using bids from ancestors 0f6b37dbe527 and 40663881a6dd
Mon, 21 Apr 2014 20:22:14 +0200 merge: fix stray character in bid merge message stable
Mads Kiilerich <madski@unity3d.com> [Mon, 21 Apr 2014 20:22:14 +0200] rev 21170
merge: fix stray character in bid merge message
Mon, 21 Apr 2014 20:18:42 +0200 tests: better test coverage for bid merge stable
Mads Kiilerich <madski@unity3d.com> [Mon, 21 Apr 2014 20:18:42 +0200] rev 21169
tests: better test coverage for bid merge Martin Geisler's test case revealed the previous message argument error.
Mon, 21 Apr 2014 19:53:19 +0200 merge: fix wrong number of arguments for bid merge message stable
Mads Kiilerich <madski@unity3d.com> [Mon, 21 Apr 2014 19:53:19 +0200] rev 21168
merge: fix wrong number of arguments for bid merge message
Mon, 21 Apr 2014 15:08:39 -0500 merge: fix test failures with new merge code on OS X stable
Matt Mackall <mpm@selenic.com> [Mon, 21 Apr 2014 15:08:39 -0500] rev 21167
merge: fix test failures with new merge code on OS X The case collision checker was missing a op entry for 'k'eep.
Sat, 19 Apr 2014 20:12:53 +0200 obsolete: fix one-element tuple in module docstring stable
Martin Geisler <martin@geisler.net> [Sat, 19 Apr 2014 20:12:53 +0200] rev 21166
obsolete: fix one-element tuple in module docstring
Sat, 19 Apr 2014 19:53:46 +0200 obsolete: let N denote number of obsoleted changestes in a marker stable
Martin Geisler <martin@geisler.net> [Sat, 19 Apr 2014 19:53:46 +0200] rev 21165
obsolete: let N denote number of obsoleted changestes in a marker The number of obsoleted changesets is referred to as N later in the docstring.
Sat, 19 Apr 2014 19:52:09 +0200 obsolete: fix language and grammar in module docstring stable
Martin Geisler <martin@geisler.net> [Sat, 19 Apr 2014 19:52:09 +0200] rev 21164
obsolete: fix language and grammar in module docstring
Sat, 19 Apr 2014 15:11:25 +0200 churn: compute padding with unicode strings stable
Isaac Jurado <diptongo@gmail.com> [Sat, 19 Apr 2014 15:11:25 +0200] rev 21163
churn: compute padding with unicode strings Most UTF-8 aware terminals convert multibyte sequences into a single displayed characters. Because the first column is padded by counting bytes, the second column is not perfectly aligned in the presence of non ASCII characters.
Thu, 17 Apr 2014 19:39:04 -0400 Added signature for changeset 564f55b25122 stable
Matt Mackall <mpm@selenic.com> [Thu, 17 Apr 2014 19:39:04 -0400] rev 21162
Added signature for changeset 564f55b25122
Thu, 17 Apr 2014 19:39:00 -0400 Added tag 3.0-rc for changeset 564f55b25122 stable
Matt Mackall <mpm@selenic.com> [Thu, 17 Apr 2014 19:39:00 -0400] rev 21161
Added tag 3.0-rc for changeset 564f55b25122
Thu, 17 Apr 2014 19:36:17 -0400 merge default into stable for 3.0 code freeze stable 3.0-rc
Matt Mackall <mpm@selenic.com> [Thu, 17 Apr 2014 19:36:17 -0400] rev 21160
merge default into stable for 3.0 code freeze
Thu, 17 Apr 2014 16:56:15 -0400 bundle2: allow extensions to extend the getbundle request
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 16:56:15 -0400] rev 21159
bundle2: allow extensions to extend the getbundle request We want extensions to be able to request extra parts.
Thu, 17 Apr 2014 17:32:34 -0400 bundle2: add a way to add parts during a `getbundle` request
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 17:32:34 -0400] rev 21158
bundle2: add a way to add parts during a `getbundle` request We add a hook function to let extensions add parts to the bundle.
Thu, 17 Apr 2014 17:25:50 -0400 getbundle: pass arbitrary arguments all along the call chain
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 17:25:50 -0400] rev 21157
getbundle: pass arbitrary arguments all along the call chain The wireprotocol command accepts arbitrary arguments, we are now passing such arguments down the call chain.
Thu, 17 Apr 2014 17:59:28 -0400 bundle2: call a hook after the transaction is closed
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 17:59:28 -0400] rev 21156
bundle2: call a hook after the transaction is closed We call a dedicated hook right after closing the transaction. This will let people react to the transaction with all the information in hand. This hook is experimental and will not survive in future versions.
Thu, 17 Apr 2014 17:21:39 -0400 bundle2: call a hook prior to closing the transaction
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 17:21:39 -0400] rev 21155
bundle2: call a hook prior to closing the transaction We call a dedicated hook right before closing the transaction. This will let people abort unbundling with all the information in hand. This hook is experimental and will not survive in future versions.
Thu, 17 Apr 2014 17:16:21 -0400 bundle2: inform transaction that we are in a bundle2 unbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 17:16:21 -0400] rev 21154
bundle2: inform transaction that we are in a bundle2 unbundle That way, hooks called during the unbundle process are aware that a bigger picture is going on.
Thu, 17 Apr 2014 17:46:26 -0400 changegroup: use tr.hookargs when calling changegroup hooks
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 17:46:26 -0400] rev 21153
changegroup: use tr.hookargs when calling changegroup hooks So that other parties using the transaction can put information in our hook calls.
Thu, 17 Apr 2014 17:15:02 -0400 changegroup: use tr.hookargs when calling pretxnchangegroup hooks
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 17:15:02 -0400] rev 21152
changegroup: use tr.hookargs when calling pretxnchangegroup hooks So that other parties using the transaction can put information in our hook calls.
Thu, 17 Apr 2014 17:09:20 -0400 addchangegroup: register data in tr.hookargs
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 17:09:20 -0400] rev 21151
addchangegroup: register data in tr.hookargs We are registering data related to the process into the transaction hook data. This lets other parties using the same transaction get informed of the addchangegroup result.
Thu, 17 Apr 2014 17:04:59 -0400 transaction: add a notion of hook arguments
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 17:04:59 -0400] rev 21150
transaction: add a notion of hook arguments It is now possible to register parameters to be used when invoking hooks in this transaction. This will cope with the fact that bundle2 adds multiple data types in a single transaction. Do not expect any wide and consistent usages of this in the next release. This will be used by bundle2 experiments first. It will be made better for the release after.
Thu, 17 Apr 2014 16:54:15 -0400 bundle2: allow extensions to plug into the push process
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 16:54:15 -0400] rev 21149
bundle2: allow extensions to plug into the push process Extensions are offered functions to add parts and process their results.
Thu, 17 Apr 2014 16:04:58 -0400 bundle2: require both client and server to opt in
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 16:04:58 -0400] rev 21148
bundle2: require both client and server to opt in Even if the server is bundle2-enabled, the client now has to opt-in in the config too.
Thu, 17 Apr 2014 16:01:58 -0400 bundle2: move bundle2 config option to section "experimental"
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 16:01:58 -0400] rev 21147
bundle2: move bundle2 config option to section "experimental" We highlight the fact that this is experimental by moving it to an "experimental" section, and we match the config name with the server capability name `bundle2-exp`.
Thu, 17 Apr 2014 15:45:12 -0400 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 15:45:12 -0400] rev 21146
bundle2: move all parts into a `bx2` namespace All currently core parts are moved to a `bx2` namespace (for "bundle 2 experimental"). This should avoid conflicts between the final stable format and the one about to be released.
Thu, 17 Apr 2014 15:33:17 -0400 bundle2: rename server capability to bundle2-exp
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 15:33:17 -0400] rev 21145
bundle2: rename server capability to bundle2-exp For the same reason, we advertise this bundle2 implementation and format as experimental. This will leave room for field testing in 3.0 but won't conflict with a stable implementation in 3.1.
Thu, 17 Apr 2014 15:27:54 -0400 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 15:27:54 -0400] rev 21144
bundle2: use HG2X in the header The current implementation of bundle2 is still very experimental and the 3.0 freeze is yesterday. The current bundle2 format has never been field-tested, so we rename the header to HG2X. This leaves the HG20 header available for real usage as a stable format in Mercurial 3.1. We won't guarantee that future mercurial versions will keep supporting this `HG2X` format.
Thu, 17 Apr 2014 02:01:38 -0400 bundle2: transmit capabilities to getbundle during pull
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 02:01:38 -0400] rev 21143
bundle2: transmit capabilities to getbundle during pull Bundle2 capabilities of the client are sent to the server in the bundlecaps argument of `getbundle`.
Thu, 17 Apr 2014 14:37:24 -0400 bundle2: include client capabilities in the pushed bundle
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 14:37:24 -0400] rev 21142
bundle2: include client capabilities in the pushed bundle The necessary data is now included in the `replycaps` part.
Thu, 17 Apr 2014 01:49:20 -0400 bundle2: advertise bundle2 caps in server capabilities
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 01:49:20 -0400] rev 21141
bundle2: advertise bundle2 caps in server capabilities We can now retrieve them from the server during push. The capabilities are encoded the same way as in `replycaps` part (with an extra layer of urlquoting to escape separators).
Thu, 17 Apr 2014 01:50:28 -0400 bundle2: add bundle2caps dict on localrepo object
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 01:50:28 -0400] rev 21140
bundle2: add bundle2caps dict on localrepo object This dictionary will hold bundle2-related capabilities.
Thu, 17 Apr 2014 01:44:53 -0400 bundle2: capabilities encoding
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 01:44:53 -0400] rev 21139
bundle2: capabilities encoding
Thu, 17 Apr 2014 01:09:05 -0400 bundle2: extract capabilities decoding
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 01:09:05 -0400] rev 21138
bundle2: extract capabilities decoding We'll need to reuse this in more places (at least pull and push).
Thu, 17 Apr 2014 01:03:33 -0400 bundle2: protect capabilities name and values with url quoting
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 01:03:33 -0400] rev 21137
bundle2: protect capabilities name and values with url quoting This lift limitations of the text based encoding.
Thu, 17 Apr 2014 11:44:49 -0400 bundle2: support for capabilities with values
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 11:44:49 -0400] rev 21136
bundle2: support for capabilities with values The capabilities attributes of `bundle20` is now a dictionary and the reply caps can encode capabilities with values.
Thu, 17 Apr 2014 11:32:30 -0400 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Apr 2014 11:32:30 -0400] rev 21135
bundle2: add capabilities support in `replycaps` part This part now contains a list of supported capabilities.
Wed, 16 Apr 2014 23:55:59 -0400 bundle2: adds a capabilities attribute on bundler20
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Apr 2014 23:55:59 -0400] rev 21134
bundle2: adds a capabilities attribute on bundler20 This attribute conveys the capabilities supported by the destination of the bundle. It is used to decide which parts to include in the bundle. This is currently a set but will probably be turned into a dictionary to allow capabilities with values.
Wed, 16 Apr 2014 23:18:27 -0400 bundle2: include stderr when capturing handlers output
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Apr 2014 23:18:27 -0400] rev 21133
bundle2: include stderr when capturing handlers output We do not discriminate between stdout and stderr yet. But this will do for now.
Wed, 16 Apr 2014 23:36:57 -0400 ui: pushbuffer can now also capture stderr
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Apr 2014 23:36:57 -0400] rev 21132
ui: pushbuffer can now also capture stderr We need an easy way to capture both stderr and stdout during bundle2 processing of a remote bundle. This changeset adds simple changes to the `ui` class to make this possible. I expect the interface to change in future releases as bundle2 will probably want to distinguish stdout and stderr. The current change will, however, do for now.
Wed, 16 Apr 2014 14:22:24 -0400 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Apr 2014 14:22:24 -0400] rev 21131
bundle2: capture remote stdout while unbundling When a reply is built, the bundle processing will capture the output of each handler and sends it to the client in a dedicated part. As a side effect, this add a "remote: " prefix to destination output on local push. This is considered okay for now as: 1. bundle2 is still experimental, 2. Matt said he could be okay to change output for bundle2, 3. This keeps the implementation simple. This changeset does it for stdout only. stderr will be done in a future changeset.
Wed, 16 Apr 2014 14:09:35 -0400 bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Apr 2014 14:09:35 -0400] rev 21130
bundle2: introduce `replycaps` part for on-demand reply The bundle2 processing does not create a bundle2 reply by default anymore. It is only done if the client requests it with a `replycaps` part. This part is called `replycaps` as it will eventually contain data about which bundle2 capabilities are supported by the client. We have to add a flag to the test command to control whether a reply is generated or not.
Wed, 16 Apr 2014 18:41:48 -0400 bundle2: use an official iterparts method to unbundle parts
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Apr 2014 18:41:48 -0400] rev 21129
bundle2: use an official iterparts method to unbundle parts Explicit is better than implicit.
Fri, 28 Feb 2014 02:52:32 +0100 merge: with merge.preferancestor=*, run an auction with bids from ancestors
Mads Kiilerich <madski@unity3d.com> [Fri, 28 Feb 2014 02:52:32 +0100] rev 21128
merge: with merge.preferancestor=*, run an auction with bids from ancestors The basic idea is to do the merge planning with all the available ancestors, consider the resulting actions as "bids", make an "auction" and automatically pick the most favourable action for each file. This implements the basic functionality and will only consider "keep" and "get" actions. The heuristics for picking the best action can be tweaked later on. By default it will only pass ctx.ancestor as the single ancestor to calculateupdates. The code path for merging with a single ancestor is not changed.
Fri, 28 Feb 2014 15:10:56 -0800 log: changed implementation to use graphlog code
Lucas Moscovicz <lmoscovicz@fb.com> [Fri, 28 Feb 2014 15:10:56 -0800] rev 21127
log: changed implementation to use graphlog code Now that revsets work in a lazy way, log code can be changed to parse every option into a revset and then evaluate it lazily. Now expressions like "hg log -b default -b ." are converted into a revset using the same code as graphlog.
Mon, 24 Feb 2014 22:42:14 +0100 context: introduce merge.preferancestor for controlling which ancestor to pick
Mads Kiilerich <madski@unity3d.com> [Mon, 24 Feb 2014 22:42:14 +0100] rev 21126
context: introduce merge.preferancestor for controlling which ancestor to pick Multiple revisions can be specified in merge.preferancestor, separated by whitespace. First match wins. This makes it possible to overrule the default of picking the common ancestor with the lowest hash value among the "best" (introduced in 3605d4e7e618). This can for instance help with some merges where the 'wrong' ancestor is used. There will thus be some overlap between this and the problems that can be solved with a future 'consensus merge'. Mercurial will show a note like note: using 40663881a6dd as ancestor of 3b08d01b0ab5 and adfe50279922 alternatively, use --config merge.preferancestor=0f6b37dbe527 when the option is available, listing all the alternative ancestors.
Thu, 17 Apr 2014 17:32:04 +0200 context: tell when .ancestor picks one of multiple common ancestors heads
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Apr 2014 17:32:04 +0200] rev 21125
context: tell when .ancestor picks one of multiple common ancestors heads Show a message like note: using 0f6b37dbe527 as ancestor of adfe50279922 and cf89f02107e5 So far this is just a warning - there is nothing the user can do to select another ancestor.
Thu, 17 Apr 2014 09:36:09 +0900 hgweb: align entries in "changelog" and "revisions" pages of "spartan" style
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 17 Apr 2014 09:36:09 +0900] rev 21124
hgweb: align entries in "changelog" and "revisions" pages of "spartan" style Before this patch, each log entries in "changelog" and "revisions" pages of "spartan" style are not aligned by column, because: - each log entries are separated "<table>" entries, and - there are no fixed "width" information for each "<th>"/"<td>" entries This patch aligns entries in "changelog" and "revisions" pages of "spartan" style by: - adding 'label' class to '<th>' for 'age' information, and - setting 'width' of '<th class="label">' with fixed size 'class="age"' is not used for this purpose, because it is also used to set "bold" font-weight "16em" seems to be wide enough to show date information fully, when web browser disables (or doesn't support) javascript.
Thu, 17 Apr 2014 09:36:09 +0900 hgweb: show revisions and hashes gotten from changelog in "comparison" page
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 17 Apr 2014 09:36:09 +0900] rev 21123
hgweb: show revisions and hashes gotten from changelog in "comparison" page Before this patch, revision numbers and hash values in "comparison" page are gotten from not changelog but filelog. Such filelog information is useful only for hgweb debugging, and may confuse users. This patch shows revision numbers and hash values gotten from changelog in "comparison" page.
Thu, 17 Apr 2014 09:36:08 +0900 hgweb: show as same parents as "hg parents -r REV FILE" in pages for file
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 17 Apr 2014 09:36:08 +0900] rev 21122
hgweb: show as same parents as "hg parents -r REV FILE" in pages for file Before this patch, "parents" in pages for file doesn't show as same parents as "hg parents -r REV FILE", when the specified file is not modified in the specified revision. For example, it is assumed that revision A, B and D change file "f". changelog (A) ---> (B) ---> (C) ---> (D) filelog "f" (x) ---> (y) ------------> (z) "/file/D/f" invokes "webutil.parents()" with filectx(z) gotten from changectx(D), and it returns changectx(B). This is as same result as "hg parents -r D f". In the other hand, "/file/C/f" invokes "webutil.parents()" with filectx(y') gotten from changectx(C), and it returns changectx(A), because filectx(y') is linked to changectx(B), and works like filectx(y) in some cases. In this case, revision B is hidden from users browsing file "f" in revision C. This patch shows as same parents as "hg parents -r REV FILE" in pages for file, by making "webutil.parents()" return: - "linkrev()"-ed revision only, if: - specified context instance is "filectx" (because "webutil.parents()" is invoked with changectx, too), and - (1) the revision from which filectx is gotten and (2) the one to which filectx is linked are different from each other - revision gotten from "ctx.parents()", otherwise
Thu, 17 Apr 2014 09:36:08 +0900 hgweb: make "comparison" get parent from not filelog but changelog
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 17 Apr 2014 09:36:08 +0900] rev 21121
hgweb: make "comparison" get parent from not filelog but changelog Before this patch, "comparison" shows unexpected result, when the specified file is not modified in the specified revision, even though "diff" shows empty result. When REV doesn't change specified FILE, "diff" shows: "hg diff -c REV FILE" but "comparison" shows: "hg diff -c `hg parents -r REV FILE` FILE" In other words, the former gets parent from changelog, but the latter gets one from filelog. This may confuse users browsing (and switching "diff" and "comparison" of) files in the specified revision. This patch makes "comparison" get parent from not filelog but changelog, to show "hg diff -c REV FILE" in both "diff" and "comparison" pages.
Thu, 17 Apr 2014 09:36:08 +0900 hgweb: fix lack of "bookmarks" link in "/file" page of "paper" style
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 17 Apr 2014 09:36:08 +0900] rev 21120
hgweb: fix lack of "bookmarks" link in "/file" page of "paper" style This patch also fixes same problem of "coal" style, because it re-uses "filerevision.tmpl" of "paper" style. "gitweb" and "monoblue" styles don't have such problems. "spartan" style doesn't have "bookmarks" page definition itself.
Thu, 17 Apr 2014 11:48:22 -0700 hgweb: adding article link to rss feed
Aaron Jensen <ajensen@webmd.net> [Thu, 17 Apr 2014 11:48:22 -0700] rev 21119
hgweb: adding article link to rss feed
Thu, 17 Apr 2014 11:47:49 -0700 hgweb: adding branch names from inbranch template to rss feed
Aaron Jensen <ajensen@webmd.net> [Thu, 17 Apr 2014 11:47:49 -0700] rev 21118
hgweb: adding branch names from inbranch template to rss feed
Thu, 17 Apr 2014 11:45:43 -0700 hgweb: adding branch names from inbranch template to atom feed
Aaron Jensen <ajensen@webmd.net> [Thu, 17 Apr 2014 11:45:43 -0700] rev 21117
hgweb: adding branch names from inbranch template to atom feed
Thu, 03 Oct 2013 18:01:21 +0200 dirstate: report bad subdirectories as match.bad, not just a warning (BC)
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 21116
dirstate: report bad subdirectories as match.bad, not just a warning (BC) This seems simpler and more correct. The only test coverage for this is test-permissions.t when it says: dir: Permission denied
Thu, 03 Oct 2013 18:01:21 +0200 dirstate: improve documentation and readability of match and ignore in the walker
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 21115
dirstate: improve documentation and readability of match and ignore in the walker
Thu, 03 Oct 2013 18:01:21 +0200 context: remove redundant handling of match.bad return value
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 21114
context: remove redundant handling of match.bad return value The 'bad' function is for reporting - it never returns anything.
Thu, 03 Oct 2013 18:01:21 +0200 match: remove last traces of unused .missing callback
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 21113
match: remove last traces of unused .missing callback
Sun, 13 Apr 2014 22:00:08 +0200 match: _globre doctests
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 22:00:08 +0200] rev 21112
match: _globre doctests
Thu, 03 Oct 2013 18:01:21 +0200 match: improve documentation - docstrings and more descriptive variable naming
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 21111
match: improve documentation - docstrings and more descriptive variable naming No real changes. pattern: 'kind:pat' as specified on the command line patterns, pats: list of patterns kind: 'path', 'glob' or 're' or ... pat: string in the corresponding 'kind' format kindpats: list of (kind, pat) tuples
Wed, 05 Mar 2014 15:55:09 -0800 largefiles: changed overridelog to work with graphlog
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 05 Mar 2014 15:55:09 -0800] rev 21110
largefiles: changed overridelog to work with graphlog Log for largefiles was failing for graph log since it was overriding match instead of matchandpats. [Mads Kiilerich modified this patch to address his review comments and ended up rewriting/removing most of it.]
Thu, 06 Mar 2014 14:52:07 -0800 largefiles: added test coverage for graph log
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 06 Mar 2014 14:52:07 -0800] rev 21109
largefiles: added test coverage for graph log [Mads Kiilerich placed this patch before the patch that makes graphlog actually work correctly for largefiles. As it is introduced here it just adds test coverage and the actual bugfix patch will show the actual change.]
Tue, 25 Feb 2014 10:40:04 -0800 cmdutil: changed _makegraphlogrevset to _makelogrevset
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 25 Feb 2014 10:40:04 -0800] rev 21108
cmdutil: changed _makegraphlogrevset to _makelogrevset This method will now be used to build both graphlog and log revset after this series of patches.
Thu, 17 Apr 2014 20:01:39 +0200 revlog: backout 514d32de6646 - commonancestors
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Apr 2014 20:01:39 +0200] rev 21107
revlog: backout 514d32de6646 - commonancestors
Thu, 17 Apr 2014 20:01:39 +0200 localrepo: use commonancestorsheads for checking linear heritage in file commit
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Apr 2014 20:01:39 +0200] rev 21106
localrepo: use commonancestorsheads for checking linear heritage in file commit If two revisions are linearly related, there will only be one ancestor, and commonancestors and commonancestorsheads would give the same result. commonancestorsheads is however slightly simpler, faster and more correct.
Thu, 17 Apr 2014 20:01:39 +0200 backout: use commonancestorsheads for checking linear heritage
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Apr 2014 20:01:39 +0200] rev 21105
backout: use commonancestorsheads for checking linear heritage If two revisions are linearly related, there will only be one ancestor, and commonancestors and commonancestorsheads would give the same result. commonancestorsheads is however slightly simpler, faster and more correct.
Thu, 17 Apr 2014 20:01:35 +0200 revlog: introduce commonancestorsheads method
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Apr 2014 20:01:35 +0200] rev 21104
revlog: introduce commonancestorsheads method Very similar to commonancestors but giving all the common ancestors heads.
Thu, 17 Apr 2014 19:58:08 +0200 parsers: remove unnecessary gca variable in index_commonancestorsheads
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Apr 2014 19:58:08 +0200] rev 21103
parsers: remove unnecessary gca variable in index_commonancestorsheads
Mon, 24 Feb 2014 22:42:14 +0100 parsers: introduce index_commonancestorsheads
Mads Kiilerich <madski@unity3d.com> [Mon, 24 Feb 2014 22:42:14 +0100] rev 21102
parsers: introduce index_commonancestorsheads This is an exact copy of index_ancestors but without the final "deepest" pruning.
Thu, 17 Apr 2014 19:49:56 +0200 ancestors: extract candidates function as commonancestorsheads
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Apr 2014 19:49:56 +0200] rev 21101
ancestors: extract candidates function as commonancestorsheads
Thu, 17 Apr 2014 14:54:46 +0200 filemerge: better handling of failing remove of temporary files
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Apr 2014 14:54:46 +0200] rev 21100
filemerge: better handling of failing remove of temporary files We have seen some failures on Windows that could seem like the unlinks of temporary files were failing. That could perhaps be because the merge tool somehow still held the files open. Instead of the bare bone os.unlink, use our util.unlink with special rename/retry handling on Windows.
Thu, 17 Apr 2014 14:54:46 +0200 contrib: remove mergetools.hgrc premerge=False for Beyond Compare and Araxis
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Apr 2014 14:54:46 +0200] rev 21099
contrib: remove mergetools.hgrc premerge=False for Beyond Compare and Araxis There can be good reasons to disable premerge no matter which merge tool is used. Most tools will do just fine without premerge and handle the simple merges more or less automatic and silent. We _could_ thus disable premerge for most tools. But without premerge, the merge tool will be launched for each file - that makes it a slow and expensive process to perform big simple merges. It is thus better to consistently stick to the default premerge=True. The mergetools.hgrc configuration for most tools implicitly use the default premerge=True but Araxis and the Linux entry for Beyond Compare had premerge=False. These lines has been removed. These settings were introduced by 6b354a763617 without further explanation of why they should be good. (We have seen some crashes on Windows with Araxis where a merge failed after a lot of Araxis flashing. I haven't been able to reproduce it and do not know exactly what happened. Enabling premerge avoids the problems.)
Wed, 16 Apr 2014 03:05:00 +0900 obsolete: add '%' specifier to the format string to avoid TypeError at runtime
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 03:05:00 +0900] rev 21098
obsolete: add '%' specifier to the format string to avoid TypeError at runtime Mapping operation on the format string not including any '%' specifiers causes TypeError at runtime.
Wed, 16 Apr 2014 03:05:00 +0900 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 03:05:00 +0900] rev 21097
check-code: detect "% inside _()" when there are leading whitespaces Before this patch, "contrib/check-code.py" can't detect "% inside _()" correctly, when there are leading whitespaces before the format string, like below: _( "format string %s" % v) This patch adds regexp pattern "[ \t\n]*" before the pattern matching against the format string. "[\s\n]" can't be used in this purpose, because "\s" is automatically replaced with "[ \t]" by "_preparepats()" and "\s" in "[]" causes nested "[]" unexpectedly.
Wed, 16 Apr 2014 03:05:00 +0900 i18n: fix "% inside _()" problem
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 03:05:00 +0900] rev 21096
i18n: fix "% inside _()" problem
Sun, 13 Apr 2014 18:45:43 +0200 largefiles: revert override, install matchfn outside the try/except restoring it
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 18:45:43 +0200] rev 21095
largefiles: revert override, install matchfn outside the try/except restoring it
Sun, 28 Apr 2013 13:18:25 +0200 largefiles: simplify revert - use getstandinsstate like other commands do
Mads Kiilerich <madski@unity3d.com> [Sun, 28 Apr 2013 13:18:25 +0200] rev 21094
largefiles: simplify revert - use getstandinsstate like other commands do
Sun, 13 Apr 2014 18:45:43 +0200 largefiles: remove dummy assignments for creating an already existing closure
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 18:45:43 +0200] rev 21093
largefiles: remove dummy assignments for creating an already existing closure
Sun, 13 Apr 2014 18:45:43 +0200 largefiles: remove silent handling of incorrect invocation of restorematchfn
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 18:45:43 +0200] rev 21092
largefiles: remove silent handling of incorrect invocation of restorematchfn It is better to get a crash than to continue without noticing errors.
Sun, 13 Apr 2014 18:45:43 +0200 largefiles: copy override, install matchfn outside the try/except restoring it
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 18:45:43 +0200] rev 21091
largefiles: copy override, install matchfn outside the try/except restoring it
Sun, 13 Apr 2014 18:45:43 +0200 largefiles: clarify installmatchfn documentation
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 18:45:43 +0200] rev 21090
largefiles: clarify installmatchfn documentation
Sat, 27 Apr 2013 23:19:52 +0200 largefiles: use more reasonable locking for update
Mads Kiilerich <madski@unity3d.com> [Sat, 27 Apr 2013 23:19:52 +0200] rev 21089
largefiles: use more reasonable locking for update
Sat, 27 Apr 2013 23:19:52 +0200 largefiles: full debugdirstate functionality for largefiles
Mads Kiilerich <madski@unity3d.com> [Sat, 27 Apr 2013 23:19:52 +0200] rev 21088
largefiles: full debugdirstate functionality for largefiles - just reusing the original command with a mockup repo. This makes it possible to see dates in the lfdirstate and gives less code duplication.
Sat, 27 Apr 2013 23:19:52 +0200 largefiles: make cat on standins do something
Mads Kiilerich <madski@unity3d.com> [Sat, 27 Apr 2013 23:19:52 +0200] rev 21087
largefiles: make cat on standins do something cat of a standin would silently fail. The use of standins is mostly an implementation detail, but it is already a bit leaking. Being able to see the content of standins might be convenient for debugging.
Sun, 13 Apr 2014 18:45:43 +0200 largefiles: remove confusing handling of .bad return value - it is void
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 18:45:43 +0200] rev 21086
largefiles: remove confusing handling of .bad return value - it is void
Thu, 03 Oct 2013 18:01:21 +0200 largefiles: fix profile of unused largefilesdirstate._ignore
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 21085
largefiles: fix profile of unused largefilesdirstate._ignore
Tue, 08 Apr 2014 00:48:36 +0200 largefiles: import whole modules instead of importing parts of them
Mads Kiilerich <madski@unity3d.com> [Tue, 08 Apr 2014 00:48:36 +0200] rev 21084
largefiles: import whole modules instead of importing parts of them Be more friendly to demandimport.
Thu, 18 Apr 2013 18:56:18 +0200 largefiles: update should only create a .orig backup of a largefile once
Mads Kiilerich <madski@unity3d.com> [Thu, 18 Apr 2013 18:56:18 +0200] rev 21083
largefiles: update should only create a .orig backup of a largefile once A .orig of a standin after the update do that a .orig of the actual largefile is created. The .orig standin was however never removed again and the largefile .orig was thus overwritten again and again. The fix: remove the standin .orig when it is used.
Mon, 07 Apr 2014 02:12:28 +0200 merge: let manifestmerge emit 'keep' actions when keeping wd version
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 02:12:28 +0200] rev 21082
merge: let manifestmerge emit 'keep' actions when keeping wd version Such a 'keep' action will later be the preferred (non)action when there is multiple ancestors. It is thus very convenient to have it explicitly. The extra actions will only be emitted in the case where the local file has changed since the ancestor but the other hasn't. That is the symmetrical operation to a 'get' action. This will create more action tuples that not really serve a purpose. The number of actions will however have the number of changed files as upper bound and it should thus not increase the memory/cpu use significantly.
Sun, 06 Apr 2014 13:39:51 +0200 merge: pass merge ancestor to calculateupdates as a list
Mads Kiilerich <madski@unity3d.com> [Sun, 06 Apr 2014 13:39:51 +0200] rev 21081
merge: pass merge ancestor to calculateupdates as a list The list will so far always have one element.
Sun, 06 Apr 2014 13:39:51 +0200 merge: move ancestor selection tweaking from manifestmerge to update function
Mads Kiilerich <madski@unity3d.com> [Sun, 06 Apr 2014 13:39:51 +0200] rev 21080
merge: move ancestor selection tweaking from manifestmerge to update function - passing it through calculateupdates. This will make sure manifestmerge actually use the ancestor it is given.
Thu, 03 Oct 2013 18:01:21 +0200 match: make it more clear what _roots do and that it ends up in match()._files
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 21079
match: make it more clear what _roots do and that it ends up in match()._files
Tue, 15 Apr 2014 23:29:19 -0400 cat: explicitly document the supported formatter rules
Matt Harbison <matt_harbison@yahoo.com> [Tue, 15 Apr 2014 23:29:19 -0400] rev 21078
cat: explicitly document the supported formatter rules The previous documentation pointed to the export command, but even if the user recognized that instead of only reading the cat specific list of rules, not all of the export rules applied anyway (specifically %N, %n and %m). The new items are a copy/paste from export's list. These rules have existed since at least version 0.5. Note that %m gets substituted with 'None' because the commit message isn't passed to cmdutil.makefilename(). %R and %r are currently effectively the same, since no revwidth is passed, however they both work. There aren't any existing tests for these rules, so they are added to prevent future regression.
Wed, 16 Apr 2014 01:10:08 +0200 convert: backout 81cf597dafa9 and a3545c3104aa -closemap
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Apr 2014 01:10:08 +0200] rev 21077
convert: backout 81cf597dafa9 and a3545c3104aa -closemap Closemap solves a very specific use case. It would be better to have a more generic solution than to have to maintain this forever. Closemap has not been released yet and removing it now will not break any backward compatibility contract. There is no test coverage for closemap but it seems like the same can be achieved with a simple and much more powerful custom extension: import hgext.convert.hg class source(hgext.convert.hg.mercurial_source): def getcommit(self, rev): c = super(source, self).getcommit(rev) if rev in [''' d643f67092ff123f6a192d52f12e7d123dae229f 9117c6561b0bd7792fa13b50d28239d51b78e51f f368a1c302d5b87506f7edb13769e591e063d7ea ''']: c.extra = c.extra.copy() c.extra['close'] = '1' return c hgext.convert.hg.mercurial_source = source
Wed, 16 Apr 2014 01:09:49 +0200 convert: backout b75a04502ced and 9616b03113ce - tagmap
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Apr 2014 01:09:49 +0200] rev 21076
convert: backout b75a04502ced and 9616b03113ce - tagmap Tagmap solves a very specific use case. It would be better to have a more generic solution than to have to maintain this forever. Tagmap has not been released yet and removing it now will not break any backward compatibility contract. There is no test coverage for tagmap but it seems like the same can be achieved with a (relatively) simple and much more powerful custom extension: import hgext.convert.hg def f(tag): return tag.replace('some', 'other') class source(hgext.convert.hg.mercurial_source): def gettags(self): return dict((f(tag), node) for tag, node in in super(source, self).gettags().items()) def getfile(self, name, rev): data, flags = super(source, self).getfile(name, rev) if name == '.hgtags': data = ''.join(l[:41] + f(l[41:]) + '\n' for l in data.splitlines()) return data, flags hgext.convert.hg.mercurial_source = source
Tue, 15 Apr 2014 11:53:10 -0400 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 11:53:10 -0400] rev 21075
bundle2: support for push over the wire We use the new method defined in the past changeset to send a bundle2 stream and receive one in reply. The http version is missing remote output support. This will be done later using a bundle part.
Tue, 15 Apr 2014 17:53:52 -0400 httppeer: support for _calltwowaystream
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 17:53:52 -0400] rev 21074
httppeer: support for _calltwowaystream This new method is now supported by http too.
Tue, 15 Apr 2014 17:18:35 -0400 sshpeer: add implementation of _calltwowaystream
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 17:18:35 -0400] rev 21073
sshpeer: add implementation of _calltwowaystream This implements the call needed by bundle2. The error handling is a bit flaky right now, but bundle2 error handling in general is still flaky anyway. Bundle2 is still disabled by default, I do not expect this to be a problem.
Tue, 15 Apr 2014 17:19:46 -0400 wireproto: add a _calltwowaystream method on wirepeer
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 17:19:46 -0400] rev 21072
wireproto: add a _calltwowaystream method on wirepeer This method will be used by bundle2 pushes. It calls a command, feeds it with a stream and receives another stream in reply. Actual implementation for ssh and http will be done in later changesets.
Tue, 15 Apr 2014 16:49:30 -0400 bundle2: return a bundle20 object from exchanges.unbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 16:49:30 -0400] rev 21071
bundle2: return a bundle20 object from exchanges.unbundle When a bundle2 is pushed we return a bundle instead of an integer. We use to return a binary stream. We now return a `bundle20` bundler to make the life of wireprotocol implementation simpler.
Tue, 15 Apr 2014 16:42:52 -0400 bundle2: feed a binary stream to `peer.unbundle`
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 16:42:52 -0400] rev 21070
bundle2: feed a binary stream to `peer.unbundle` This input will have to travel over the wire anyway, so we feed the peer method with a simple binary stream and rely on the server side to use `readbundle` to create the python object. The test output changes because the bundle is created marginally sooner and the debug output interleaves in a different way.
Tue, 15 Apr 2014 15:20:33 -0400 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 15:20:33 -0400] rev 21069
bundle2: allow bundle2 for pulling over the wire This changeset makes `wireprotocol` peers advertise bundle2 capability and comply with bundle2 `getbundle` requests. Note that advertising bundle2 could make a client try to use it for push. Such pushes would fail. However, I do not expect any human being to have enabled bundle2 on their server yet.
Tue, 15 Apr 2014 11:27:55 -0400 bundle2: return a stream from exchange.getbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 11:27:55 -0400] rev 21068
bundle2: return a stream from exchange.getbundle For friendliness with the wire protocol implementation, the `exchange.getbundle` now returns a binary stream when asked for a bundle2. We detect a bundle2 request and upgrade the binary stream to an unbundler object. In the future the unbundler may gain feature to look like a binary stream, but we are not quite there yet.
Tue, 15 Apr 2014 13:57:15 -0400 bundle2: let readbundle return unbundle20
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 13:57:15 -0400] rev 21067
bundle2: let readbundle return unbundle20 The `readbundle` function can now recognize a bundle2 stream and return the appropriate unbundler. This is required for proper bundle2 support over the wire.
Tue, 15 Apr 2014 13:54:54 -0400 bundle2: make header reading optional
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 13:54:54 -0400] rev 21066
bundle2: make header reading optional The `readbundle` function will consume the 4 first bytes to dispatch between various unbundler. We introduce a way to inform `unbundle20` that the header has been read and it can be trusted.
Tue, 15 Apr 2014 13:42:45 -0400 bundle2: prepare readbundle to return more that one type of bundle
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 13:42:45 -0400] rev 21065
bundle2: prepare readbundle to return more that one type of bundle We first read 4 bytes to get the `HG10` bytes then we read the compression scheme if this is `HG10`. This prepares the code for the arrival of `HG20` handling.
Mon, 14 Apr 2014 15:45:30 -0400 bundle2: add a ui argument to readbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Apr 2014 15:45:30 -0400] rev 21064
bundle2: add a ui argument to readbundle The bundle2 unbundler needs a ui argument. We are now passing this information to `readbundle`.
Mon, 14 Apr 2014 15:33:50 -0400 bundle2: move `readbundle` into the `exchange` module
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Apr 2014 15:33:50 -0400] rev 21063
bundle2: move `readbundle` into the `exchange` module The `readbundle` function is going to understand the bundle2 header. We move the function to a more suitable place before making any other changes.
Mon, 14 Apr 2014 14:46:32 -0400 bundle2: use headerless HG10UN stream in changegroup
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Apr 2014 14:46:32 -0400] rev 21062
bundle2: use headerless HG10UN stream in changegroup Using `readbundle` in the part handlers creates a circular import hell. We are now using a simple `HG10UN` stream with no header. Some parameters may later be introduced on the part to change parameter. Producers are updated as well.
Thu, 10 Apr 2014 10:53:43 -0700 bundle2: allow using bundle2 for push
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 10 Apr 2014 10:53:43 -0700] rev 21061
bundle2: allow using bundle2 for push We now support bundle2 for local push. The unbundle function has to detect which version of the bundle to use since the return type is different. Note that push error handling is currently nonexistent. This is one of the reasons why bundle2 is still disabled by default.
Fri, 11 Apr 2014 06:43:01 -0700 bundle2: add a "check:heads" handler
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 06:43:01 -0700] rev 21060
bundle2: add a "check:heads" handler This part is intended to hold the same role as the `heads` argument of the unbundle function. The client fill it with the known heads at bundle time and the server will abort if its heads changed.
Sun, 13 Apr 2014 16:36:51 -0400 repoview: make the conversion from node to rev explicit while computing hidden
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Apr 2014 16:36:51 -0400] rev 21059
repoview: make the conversion from node to rev explicit while computing hidden You cannot use `repo[...]` lookup here. 1. It is slow 2. It is very likely to trigger a hidden computation itself, entering an infinite loop.
Sun, 13 Apr 2014 16:39:31 -0400 repoview: drop duplicated lookup
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Apr 2014 16:39:31 -0400] rev 21058
repoview: drop duplicated lookup We are already looking for local tags on the line above. We can safely drop this extra lookup.
Wed, 16 Apr 2014 09:32:04 -0700 hgweb: adding branch, tags, bookmarks, user, and file list to rss feed entries
Aaron Jensen <ajensen@webmd.net> [Wed, 16 Apr 2014 09:32:04 -0700] rev 21057
hgweb: adding branch, tags, bookmarks, user, and file list to rss feed entries
Wed, 16 Apr 2014 09:31:37 -0700 hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net> [Wed, 16 Apr 2014 09:31:37 -0700] rev 21056
hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Mon, 07 Apr 2014 23:10:20 +0200 patchbomb: warn when emailing a dirty working directory parent
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:10:20 +0200] rev 21055
patchbomb: warn when emailing a dirty working directory parent
Wed, 19 Mar 2014 00:19:54 +0100 tests: coverage of convert and filemap include and the default of include all
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 00:19:54 +0100] rev 21054
tests: coverage of convert and filemap include and the default of include all
Wed, 16 Apr 2014 00:37:24 +0900 largefiles: remove no more referred "getoutgoinglfiles()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21053
largefiles: remove no more referred "getoutgoinglfiles()"
Wed, 16 Apr 2014 00:37:24 +0900 largefiles: use "outgoinghooks" to avoid redundant outgoing check
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21052
largefiles: use "outgoinghooks" to avoid redundant outgoing check Before this patch, "hg outgoing" invokes "findcommonoutgoing()" not only in "commands.outgoing()" but also in "overrides.overrideoutgoing()" (via "getoutgoinglfiles()"), when largefiles is enabled. The latter is redundant. This patch uses "outgoinghooks" to avoid redundant outgoing check. Newly introduced function "overrides.outgoinghook()" is registered into "outgoinghooks" to get the result of outgoing check in "commands.outgoing()". It invokes "lfutil.getlfilestoupload()" directly with the result of outgoing check to avoid redundant outgoing check in "getoutgoinglfiles()": "sort()" is needed, because "lfutil.getlfilestoupload()" doesn't sort the result of it. This patch also omits "if toupload is None" ("No remote repo") case, because failure of looking remote repository up should raise exception in "commands.outgoing()" before invocation of "outgoinghooks". Newly added "hg outgoing --large --graph" tests examine "outgoinghooks" invocations in "hg outgoing --graph" code path.
Wed, 16 Apr 2014 00:37:24 +0900 outgoing: introduce "outgoinghooks" to avoid redundant outgoing check
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21051
outgoing: introduce "outgoinghooks" to avoid redundant outgoing check This patch introduces "outgoinghooks" to avoid redundant outgoing check for "hg outgoing" in other than "commands.outgoing" (or utility functions used by it).
Wed, 16 Apr 2014 00:37:24 +0900 hg: make "_outgoing()" return peer object for remote repository
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21050
hg: make "_outgoing()" return peer object for remote repository This patch makes "_outgoing()" return peer object for remote repository, to avoid re-execution "expandpath()", "parseurl()", and "peer()" on caller side for specified URL.
Wed, 16 Apr 2014 00:37:24 +0900 hg: make "_outgoing()" return empty list instead of "None"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21049
hg: make "_outgoing()" return empty list instead of "None" This patch makes "_outgoing()" return empty list instead of "None", if there are no outgoing changesets, because: - returning "None" requires callers to examine whether returned value is "None" or not explicitly, if callers want to execute loop on returned value, but - there are no explicit needs to return "None"
Wed, 16 Apr 2014 00:37:24 +0900 largefiles: use "summaryremotehooks" to avoid redundant outgoing check
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21048
largefiles: use "summaryremotehooks" to avoid redundant outgoing check Before this patch, "hg summary --remote --large" invokes "findcommonoutgoing()" not only in "commands.summary()" but also in "overrides.overridesummary()" (via "getoutgoinglfiles()"). The latter is redundant. This patch uses "summaryremotehooks" to avoid redundant outgoing check. Newly introduced function "overrides.summaryremotehook()" is registered into "summaryremotehooks" to get the result of outgoing check in "commands.summary()". It invokes "lfutil.getlfilestoupload()" directly with the result of outgoing check to avoid redundant outgoing check in "getoutgoinglfiles()".
Wed, 16 Apr 2014 00:37:24 +0900 summary: introduce "summaryremotehooks" to avoid redundant incoming/outgoing check
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21047
summary: introduce "summaryremotehooks" to avoid redundant incoming/outgoing check This patch introduces "summaryremotehooks" to avoid redundant incoming/outgoing check for "hg summary" in other than "commands.summary". Only if "--remote" is not specified for "hg summary", hooks registered in "summaryremotehooks" are invoked with "None" as "changes" argument at first, and they should return tuple of two booleans meaning "whether incomings are needed" and "whether outgoings are needed". If no hooks return tuple containing "True", "hg summary" does nothing any more, because incoming/outgoing check is not needed. Otherwise, hooks are invoked again: at this time, "changes" argument refers the result of incoming/outgoing check. This patch also prevents RepoError from being raised if "--remote" is not specified for "hg summary", because of backward compatibility for "hg summary --large" without "--remote".
Wed, 16 Apr 2014 00:37:24 +0900 util: enable "hooks" to return list of the values returned from each hooks
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21046
util: enable "hooks" to return list of the values returned from each hooks
Wed, 16 Apr 2014 00:37:24 +0900 summary: separate checking incoming/outgoing and showing remote summary
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21045
summary: separate checking incoming/outgoing and showing remote summary This patch separates checking incoming/outgoing and showing remote summary, as a preparation for refactoring in succeeding patches, because: - checking incoming/outgoing may be needed, even if "--remote" is not specified for "hg summary" - checking incoming/outgoing may not be needed simultaneously "hg summary --large" without "--remote" is typical case for these.
Wed, 16 Apr 2014 00:37:24 +0900 largefiles: reuse "findcommonoutgoing()" result at "hg push"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21044
largefiles: reuse "findcommonoutgoing()" result at "hg push" Before this patch, "hg push" invokes "findcommonoutgoing()" not only in "exchange.push()" but also in "lfilesrepo.push()", when largefiles is enabled. The latter is redundant. This patch registers own "prepushoutgoinghook" function into "prepushoutgoinghooks" of "localrepository" to reuse "findcommonoutgoing()" result. "prepushoutgoinghook" omits "changelog.nodesbetween()" invocation, because "findcommonoutgoing()" invocation in "exchange.push()" takes "onlyheads" argument and it considers "nodesbetween()".
Wed, 16 Apr 2014 00:37:24 +0900 localrepo: introduce "prepushoutgoinghooks" to extend outgoing check easily
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21043
localrepo: introduce "prepushoutgoinghooks" to extend outgoing check easily This patch introduces "prepushoutgoinghooks" to extend outgoing check before pushing changesets to remote easily. This chooses the function returning "util.hooks" instead of the one to be overridden. The latter may cause problems silently, if one of overriders forgets (or fails) to execute a kind of "super(xxx, self).overridden(...)". In the other hand, the former can ensure that all registered functions are invoked, unless one of them raises an exception.
Wed, 16 Apr 2014 00:37:24 +0900 largefiles: centralize the logic to get outgoing largefiles
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21042
largefiles: centralize the logic to get outgoing largefiles Before this patch, "overrides.getoutgoinglfiles()" (called by "overrideoutgoing()" and "overridesummary()") and "lfilesrepo.push()" implement similar logic to get outgoing largefiles separately. This patch centralizes the logic to get outgoing largefiles in "lfutil.getlfilestoupload()". "lfutil.getlfilestoupload()" takes "addfunc" argument, because each callers need different information (and it is useful for enhancement in the future). - "overrides.getoutgoinglfiles()" needs only filenames - "lfilesrepo.push()" needs only hashes of largefiles
Fri, 14 Mar 2014 21:32:05 -0400 cat: support cat with explicit paths in subrepos
Matt Harbison <matt_harbison@yahoo.com> [Fri, 14 Mar 2014 21:32:05 -0400] rev 21041
cat: support cat with explicit paths in subrepos The cat command with an explicit path into a subrepo is now handled by invoking cat on the file, from that subrepo. The previous behavior was to complain that the file didn't exist in the revision (of the top most repo). Now when the file is actually missing, the revision of the subrepo is named instead (though it is probably desirable to continue naming the top level repo). The documented output formatters %d and %p reflect the path from the top level repo, since the purpose of this is to give the illusion of a unified repository. Support for the undocumented (for cat) formatters %H, %R, %h, %m and %r was added long ago (I tested back as far as 0.5), but unfortunately these will reflect the subrepo node instead of the parent context. The previous implementation was a bit loose with the return value, i.e. it would return 0 if _any_ file requested was cat'd successfully. This maintains that behavior.
Thu, 13 Mar 2014 23:45:18 -0400 cat: move most of the implementation into cmdutils.cat()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 13 Mar 2014 23:45:18 -0400] rev 21040
cat: move most of the implementation into cmdutils.cat() This will allow access to the reusable parts from subrepos, similar to add(), forget(), etc.
Tue, 15 Apr 2014 17:51:27 -0400 tests: mark test in tests/test-help.t as contingent on gettext being available
Kent Frazier <kentfrazier@gmail.com> [Tue, 15 Apr 2014 17:51:27 -0400] rev 21039
tests: mark test in tests/test-help.t as contingent on gettext being available
Tue, 15 Apr 2014 16:27:12 -0400 setup.py: fix C extension compilation issue with OS X 10.9 and Xcode 5.1
Kent Frazier <kentfrazier@gmail.com> [Tue, 15 Apr 2014 16:27:12 -0400] rev 21038
setup.py: fix C extension compilation issue with OS X 10.9 and Xcode 5.1
Mon, 14 Apr 2014 18:21:26 -0500 color: add effect to the template symbol table
Sean Farley <sean.michael.farley@gmail.com> [Mon, 14 Apr 2014 18:21:26 -0500] rev 21037
color: add effect to the template symbol table Previously, words like 'red' had to be protected by quotes before passing to the label template function. Now, we add color effects to the symbol table so that commands like, $ hg log -r . -T "{label(red, node|short)}\n" can work without the need for quoting.
Wed, 16 Apr 2014 02:38:11 +0900 amend: invoke editor forcibly when "--edit" option is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 02:38:11 +0900] rev 21036
amend: invoke editor forcibly when "--edit" option is specified 422981492ace introduces "--edit" option into "hg commit", but it doesn't work for "hg commit --amend", because 422981492ace prepares for editor invocation only around "commitfunc()" internal function, which is used only for temporary amend commit by "cmdutil.amend()". Actual commit message editing is executed in "cmdutil.amend()". This patch invokes editor forcibly when "--edit" option is specified for "hg commit --amend", even if commit message is specified explicitly by "--message" or "--logfile". This patch also removes useless handling for commit message and editor invocation around "commitfunc()" internal function.
Wed, 16 Apr 2014 02:04:41 +0900 commit: abolish useless "--force-editor" internal option for "hg commit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 02:04:41 +0900] rev 21035
commit: abolish useless "--force-editor" internal option for "hg commit" "--force-editor" option for "hg commit" has been useless since 12721a20ed30, which makes "commands.tag()" invoke "cmdutil.commit()" directly instead of "commands.commit()" with "--force-editor" internal option. This patch abolishes useless "--force-editor" internal option for "hg commit".
Tue, 15 Apr 2014 14:15:35 -0400 subrepo: return non-zero exit code when a subrepo push doesn't succeed
Matt Mackall <mpm@selenic.com> [Tue, 15 Apr 2014 14:15:35 -0400] rev 21034
subrepo: return non-zero exit code when a subrepo push doesn't succeed
Mon, 14 Apr 2014 23:27:31 -0400 debugrevlog: use unfiltered view for changelog
Matt Mackall <mpm@selenic.com> [Mon, 14 Apr 2014 23:27:31 -0400] rev 21033
debugrevlog: use unfiltered view for changelog
Wed, 19 Mar 2014 00:13:38 +0100 debugrevlog: format columns (more) nicely when dumping index data
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 00:13:38 +0100] rev 21032
debugrevlog: format columns (more) nicely when dumping index data
Sat, 22 Mar 2014 17:14:37 -0700 branchmap: log events related to branch cache
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 22 Mar 2014 17:14:37 -0700] rev 21031
branchmap: log events related to branch cache The blackblox log will now contain log events when the branch caches are updated and written.
Mon, 14 Apr 2014 11:50:05 -0700 tags: log events related to tags cache
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 14 Apr 2014 11:50:05 -0700] rev 21030
tags: log events related to tags cache We now log when .hg/cache/tags data is built from scratch by reading manifests and when the file is written.
Mon, 14 Apr 2014 15:14:02 -0400 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 14 Apr 2014 15:14:02 -0400] rev 21029
merge with stable
Tue, 15 Apr 2014 03:21:59 +0900 histedit: save manually edited commit message into ".hg/last-message.txt" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Apr 2014 03:21:59 +0900] rev 21028
histedit: save manually edited commit message into ".hg/last-message.txt" Before this patch, manually edited commit message for "message" command in histedit-ing is not saved into ".hg/last-message.txt" until it is saved by "localrepository.savecommitmessage()" in "localrepository.commit()". This may lose such commit message, if unexpected exception is raised. This patch saves manually edited commit message for "message" comand in histedit-ing into ".hg/last-message.txt" just after user editing. This is the simplest implementation to fix on stable. Editing and saving commit message should be centralized into the framework of "localrepository.commit()" with "editor" argument in the future. This patch uses repository wrapping class for exception raising before saving commit message in "localrepository.commit()" easily and certainly, because such exception requires corner case condition.
Tue, 26 Nov 2013 03:18:56 +0100 rebase: tell when reopening a closed branch head
Mads Kiilerich <madski@unity3d.com> [Tue, 26 Nov 2013 03:18:56 +0100] rev 21027
rebase: tell when reopening a closed branch head Give same 'reopening closed branch head X' message as commit gives.
Sat, 27 Apr 2013 23:19:52 +0200 dirstate: inline local finish function
Mads Kiilerich <madski@unity3d.com> [Sat, 27 Apr 2013 23:19:52 +0200] rev 21026
dirstate: inline local finish function Having it as a local function adds no value.
Tue, 08 Apr 2014 01:35:13 +0200 demandimport: make it possible to disable by setting HGDEMANDIMPORT=disable
Mads Kiilerich <madski@unity3d.com> [Tue, 08 Apr 2014 01:35:13 +0200] rev 21025
demandimport: make it possible to disable by setting HGDEMANDIMPORT=disable Convenient for debugging weird problems that are caused by demandimport or obfuscated by it. This is an undocumented developer feature.
Sun, 13 Apr 2014 19:01:00 +0200 spelling: fixes from spell checker
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 19:01:00 +0200] rev 21024
spelling: fixes from spell checker
Sun, 13 Apr 2014 19:01:00 +0200 tests: warn on invalid #if directive
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 19:01:00 +0200] rev 21023
tests: warn on invalid #if directive
Mon, 25 Nov 2013 22:00:46 +0100 run-tests: test result shows when a failed test could not start a server
Simon Heimberg <simohe@besonet.ch> [Mon, 25 Nov 2013 22:00:46 +0100] rev 21022
run-tests: test result shows when a failed test could not start a server Failing to start a server happens regularly, at least on windows buildbot. Such a failure often has nothing to do with the test, but with the environment. But half the test output can change because some data is missing. Therefore this is worth an extended error message. Detect the server failure in the diff output because it is most reliable there. Checking the output only does not show if the server failure was expected. Old failure message when server start failed: Failed test-serve.t: output changed New message: Failed test-serve.t: serve failed and output changed
Sun, 08 Sep 2013 19:02:08 -0400 commit: --edit/-e to force edit of otherwise-supplied commit message
"Bradley M. Kuhn" <bkuhn@ebb.org> [Sun, 08 Sep 2013 19:02:08 -0400] rev 21021
commit: --edit/-e to force edit of otherwise-supplied commit message The --edit/-e option for the 'commit' command forces editor, even when a commit message has been provided already by other means, such as by the -m or -l options.
Sat, 12 Apr 2014 00:38:15 -0400 bundle2: directly feed part to readbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Apr 2014 00:38:15 -0400] rev 21020
bundle2: directly feed part to readbundle Now that part payload can be read like a stream, we can directly use it to feed the unbundle10 process.
Fri, 11 Apr 2014 16:05:22 -0400 bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 16:05:22 -0400] rev 21019
bundle2: lazy unbundle of part payload The `unbundle` part gains a `read` method to retrieve payload content. This method behaves as a python file-like read method. The bundle-processing code is updated to make sure a part is fully consumed before another one is extracted. Test output changes because the debug output is even more interleaved now.
Thu, 10 Apr 2014 22:10:26 -0700 util: support None size in chunkbuffer.read()
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 10 Apr 2014 22:10:26 -0700] rev 21018
util: support None size in chunkbuffer.read() When no size is provided, read the whole buffer. This aligns with the usual behavior of `read()` in python.
Fri, 11 Apr 2014 15:02:26 -0400 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:02:26 -0400] rev 21017
bundle2: lazily iterate over bundle parts in the test We used to create a list to know the number of parts in the bundle. This prevents any lazy reading as planned for real usage. The list creation is dropped. Some test output changed as debug output is now interleaved with command output.
Fri, 11 Apr 2014 15:47:38 -0400 bundle2: move unpackheader closure into the class
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:47:38 -0400] rev 21016
bundle2: move unpackheader closure into the class With the same argument as the other one, we move this closure into the `unbundlepart` class.
Fri, 11 Apr 2014 15:46:09 -0400 bundle2: move the fromheader closure into the class itself
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:46:09 -0400] rev 21015
bundle2: move the fromheader closure into the class itself The class is now directly related to this header data. We can sanely move it on the class. I do not like closures very much...
Fri, 11 Apr 2014 15:43:16 -0400 bundle2: add an unbundle part responsible from unbundling part
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:43:16 -0400] rev 21014
bundle2: add an unbundle part responsible from unbundling part We have a new unbundle class and it is now responsible from extracting its own data. The top level bundler only extracts the header (to detect an end of stream marker) then leaves everything else to the `unbundlepart` class. The ultimate goal is to have `unbundlepart` responsible for lazily extracting its payload. This is mostly code movement.
Fri, 11 Apr 2014 15:19:54 -0400 bundle2: extract stream/unpack logic in an unpackermixin
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:19:54 -0400] rev 21013
bundle2: extract stream/unpack logic in an unpackermixin The coming `unbundlepart` will need the same kind of method than `unbundle20` for unpacking data from the stream. We extract them into a mixin class before the creation of `unbundlepart`.
Sun, 13 Apr 2014 12:21:09 -0400 exchange: restore truncated comment
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Apr 2014 12:21:09 -0400] rev 21012
exchange: restore truncated comment The old version of this comment appeared to have been trunca
Mon, 31 Mar 2014 01:00:05 +0900 grep: highlight all matched words
Takumi IINO <trot.thunder@gmail.com> [Mon, 31 Mar 2014 01:00:05 +0900] rev 21011
grep: highlight all matched words "hg grep" highlights first matched word only. This behavior is different from GNU grep. This patch makes highlight all matched words.
Thu, 23 Jan 2014 14:09:53 -0800 phase: add a passing test for (issue3575)
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 23 Jan 2014 14:09:53 -0800] rev 21010
phase: add a passing test for (issue3575) Apparently this issue was fixed along the way (If it ever existed at all…)
Mon, 24 Mar 2014 22:12:37 -0700 run-tests: allow test paths in other directories
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Mar 2014 22:12:37 -0700] rev 21009
run-tests: allow test paths in other directories Previously, test paths were assumed to be in the same directory and wouldn't have a directory component. If a path with a directory component was specified, it would be filtered out. This change allow paths to contain directories. This in turn allows tests from other directories to be executed. Executing tests in other directories may break assumptions elsewhere in the testing code. However, on initial glance, things appear to "just work." This approach of running tests from other directories is successfully being used at https://hg.mozilla.org/hgcustom/version-control-tools/file/7085790ff3af/run-mercurial-tests.py
Mon, 24 Mar 2014 21:52:28 -0700 run-tests: allow option parser to be extended
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Mar 2014 21:52:28 -0700] rev 21008
run-tests: allow option parser to be extended This patch moves the OptionParser population into its own function so consumers may modify the OptionParser before arguments are evaluated. This will allow consumers to add custom options, set different defaults, etc.
Mon, 24 Mar 2014 21:41:56 -0700 run-tests: use return values instead of sys.exit
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Mar 2014 21:41:56 -0700] rev 21007
run-tests: use return values instead of sys.exit
Mon, 24 Mar 2014 21:37:33 -0700 run-tests: Pass arguments into argument parser
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Mar 2014 21:37:33 -0700] rev 21006
run-tests: Pass arguments into argument parser Before, arguments were not passed into the optparse.OptionParser instance and were coming from sys.argv. This patch enables consumers to define the list of arguments to parse without having to adjust sys.argv.
Fri, 11 Apr 2014 07:36:14 -0700 bundle2: rename part to bundlepart
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 07:36:14 -0700] rev 21005
bundle2: rename part to bundlepart We are going to introduce an `unbundlepart` dedicated to reading bundle. So we need to rename the one used to create bundle. Even if dedicated to creation, this is still used for unbundling until we get the new class.
Fri, 11 Apr 2014 16:43:01 -0400 bundle2: comment to clarify why the handler call is where it is
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 16:43:01 -0400] rev 21004
bundle2: comment to clarify why the handler call is where it is The reason why it is here is not obvious. I'm the one who wrote it there in the first place and almost moved it 2 weeks later.
Sat, 12 Apr 2014 00:53:15 -0400 bundle2: use chunkbuffer for exchange.getbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Apr 2014 00:53:15 -0400] rev 21003
bundle2: use chunkbuffer for exchange.getbundle We can use `util.chunkbuffer` instead.
Sat, 12 Apr 2014 14:56:55 -0400 bundle2: lazily generate the changegroup part in exchange.getbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Apr 2014 14:56:55 -0400] rev 21002
bundle2: lazily generate the changegroup part in exchange.getbundle Now that we have lazy generation of parts, let's use it.
Fri, 11 Apr 2014 08:04:16 -0700 bundle2: support chunk iterator as part data
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 08:04:16 -0700] rev 21001
bundle2: support chunk iterator as part data When the `part.data` attribute is an iterator, we assume it is an iterator of chunks and use it. We use a chunkbuffer to yield chunks of 4096 bytes. The tests are updated to use this feature.
Thu, 10 Apr 2014 12:33:20 -0700 bundle2: extract a _payloadchunks method for part
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 10 Apr 2014 12:33:20 -0700] rev 21000
bundle2: extract a _payloadchunks method for part We are preparing streaming capability for part. So the generation of payload chunk will becomes more complex. We extract this part in its own function before any changes.
Thu, 10 Apr 2014 13:19:00 -0700 changegroup: move chunk extraction into a getchunks method of unbundle10
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 10 Apr 2014 13:19:00 -0700] rev 20999
changegroup: move chunk extraction into a getchunks method of unbundle10 This code used to be in `writebundle` only. We needs to make it more broadly available for bundle2. The "changegroup" bundle2 part has to retrieve the binary content of changegroup stream. We moved the chunks retrieving code into the `unbundle10` object directly and the `writebundle` code is now using that. This split is useful for bundle2 purpose, we want to be able to easily stream changegroup content in a part. To keep thing simples, we kept compression out of the new methods. If it make more sense in the future, compression may get included in this function too.
Tue, 25 Mar 2014 15:05:11 -0700 bundle2: use reply part to return result of addchangegroup
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Mar 2014 15:05:11 -0700] rev 20998
bundle2: use reply part to return result of addchangegroup We now have an official way to return the result of addchangegroup. The tests are updated to check that the return bundle is properly created. It will be used when push is bundle2 enabled.
Fri, 04 Apr 2014 14:24:11 -0700 bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 04 Apr 2014 14:24:11 -0700] rev 20997
bundle2: produce a bundle2 reply We do not know yet what kind of data future features and extensions will need to exchange. To handle that, bundle2 allows to send arbitrary content to the server. As a consequence, we need to be able to reply arbitrary content to the client. And, we can use bundle2 to transmit those arbitrary data. When a client will push a bundle2 to the server, the server will reply with a bundle2 itself. This changeset installs the first stone of this logic and test it.
Fri, 11 Apr 2014 08:24:59 -0700 bundle2: add reply awareness to unbundlerecords
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 08:24:59 -0700] rev 20996
bundle2: add reply awareness to unbundlerecords We need an efficient way to handle bundle replies. The unbundle records class is extended to carry such data.
Tue, 01 Apr 2014 00:07:17 -0700 bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 00:07:17 -0700] rev 20995
bundle2: add an integer id to part For sending response to a pushed bundle, we need to link reply parts to request part. We introduce a part id for this purpose. This is a 32 bit unique integer stored in the header.
Mon, 07 Apr 2014 23:10:20 +0200 largefiles: don't prompt when one side of merge was changed but didn't change
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:10:20 +0200] rev 20994
largefiles: don't prompt when one side of merge was changed but didn't change This can happen after backout or grafts or criss cross merges. We already do the same (but slightly different) thing in manifestmerge and filemerge.
Mon, 07 Apr 2014 15:37:27 -0500 color: fallback and test label as an effect
Sean Farley <sean.michael.farley@gmail.com> [Mon, 07 Apr 2014 15:37:27 -0500] rev 20993
color: fallback and test label as an effect With this changeset, we can now send a color name directly to the label function, e.g. $ hg log -r . -T "{label('red', node|short)}\n"
Mon, 07 Apr 2014 15:33:46 -0500 color: extract method for determining a valid effect
Sean Farley <sean.michael.farley@gmail.com> [Mon, 07 Apr 2014 15:33:46 -0500] rev 20992
color: extract method for determining a valid effect This patch is just setup work so that we can reduce code duplication and have one place to define a valid effect.
Mon, 07 Apr 2014 23:17:51 +0200 revlog: use context ancestor instead of changelog ancestor
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:51 +0200] rev 20991
revlog: use context ancestor instead of changelog ancestor We want to move in this direction.
Tue, 25 Feb 2014 20:31:53 +0100 copies: guard debug section with ui.debugflag
Mads Kiilerich <madski@unity3d.com> [Tue, 25 Feb 2014 20:31:53 +0100] rev 20990
copies: guard debug section with ui.debugflag
Tue, 25 Feb 2014 20:31:51 +0100 copies: remove _checkcopies wrapper - it does no good
Mads Kiilerich <madski@unity3d.com> [Tue, 25 Feb 2014 20:31:51 +0100] rev 20989
copies: remove _checkcopies wrapper - it does no good mergecopies might be doomed but it is not dead yet ...
Mon, 07 Apr 2014 23:17:51 +0200 transplant: use context ancestor instead of changelog ancestor
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:51 +0200] rev 20988
transplant: use context ancestor instead of changelog ancestor We want to move in this direction. ctx.ancestor is in a better position for handling a situation with multiple ancestors.
Mon, 07 Apr 2014 23:17:51 +0200 commit: use revlog.commonancestors instead of .ancestor
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:51 +0200] rev 20987
commit: use revlog.commonancestors instead of .ancestor This do probably not make any real difference but is slightly more correct and we would like to get rid of flog.ancestor.
Mon, 07 Apr 2014 23:17:51 +0200 backout: don't limit heritage check to a single ancestor
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:51 +0200] rev 20986
backout: don't limit heritage check to a single ancestor This do probably not make any real difference but is slightly more correct and we would like to get rid of changelog.ancestor.
Thu, 20 Mar 2014 01:35:07 +0100 ancestor: remove unused genericancestor
Mads Kiilerich <madski@unity3d.com> [Thu, 20 Mar 2014 01:35:07 +0100] rev 20985
ancestor: remove unused genericancestor
Mon, 07 Apr 2014 23:17:48 +0200 context: remove unused filectx.ancestor
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:48 +0200] rev 20984
context: remove unused filectx.ancestor
Sun, 09 Mar 2014 01:03:28 +0900 shelve: add "writebundle()" to invoke "writebundle()" with relative path and vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 09 Mar 2014 01:03:28 +0900] rev 20983
shelve: add "writebundle()" to invoke "writebundle()" with relative path and vfs
Sun, 09 Mar 2014 01:03:28 +0900 shelve: add "applybundle()" to invoke "readbundle()" with relative path and vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 09 Mar 2014 01:03:28 +0900] rev 20982
shelve: add "applybundle()" to invoke "readbundle()" with relative path and vfs "applybundle()" also includes "addchangegroup()" invocation to encapsulate "vfs.join()" inside it.
Sun, 09 Mar 2014 01:03:28 +0900 bundlerepo: treat temporarily extracted bundle file via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 09 Mar 2014 01:03:28 +0900] rev 20981
bundlerepo: treat temporarily extracted bundle file via vfs
(0) -10000 -3000 -1000 -240 +240 +1000 +3000 +10000 +30000 tip