Fri, 05 Aug 2016 15:00:53 +0200 branchmap: simplify error handlind when writing rev branch cache
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 05 Aug 2016 15:00:53 +0200] rev 29745
branchmap: simplify error handlind when writing rev branch cache Now that we have a general try except, we can move the error handling from the individual writes in it. Code will be reindented in the next changeset to help this on readability.
Fri, 05 Aug 2016 14:57:16 +0200 branchmap: acquires lock before writting the rev branch cache
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 05 Aug 2016 14:57:16 +0200] rev 29744
branchmap: acquires lock before writting the rev branch cache We now attempt to acquire a lock and write the branch cache within that lock. This would prevent cache corruption when multiple processes try to write the cache at the same time.
Fri, 05 Aug 2016 14:54:46 +0200 branchmap: preparatory indent of indent the branch rev writing code
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 05 Aug 2016 14:54:46 +0200] rev 29743
branchmap: preparatory indent of indent the branch rev writing code The rev branch cache is written without a lock, we are going to fix this but we indent the code beforehand to make the next changeset clearer.
Sun, 07 Aug 2016 09:47:07 +0900 mpatch: silence warning about maybe-uninitialized variable
Yuya Nishihara <yuya@tcha.org> [Sun, 07 Aug 2016 09:47:07 +0900] rev 29742
mpatch: silence warning about maybe-uninitialized variable It's false positive, but it wouldn't be possible for gcc to know PyBytes_FromStringAndSize() sets PyErr_Occurred(). mercurial/mpatch_module.c:105:47: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized] PyErr_SetString(mpatch_Error, mpatch_errors[-r]);
Sun, 07 Aug 2016 09:40:30 +0900 mpatch: change lalloc() to local function
Yuya Nishihara <yuya@tcha.org> [Sun, 07 Aug 2016 09:40:30 +0900] rev 29741
mpatch: change lalloc() to local function It was mistakenly made public at b9b9f9a92481.
Sun, 07 Aug 2016 09:49:07 +0900 mpatch: remove superfluous whitespaces
Yuya Nishihara <yuya@tcha.org> [Sun, 07 Aug 2016 09:49:07 +0900] rev 29740
mpatch: remove superfluous whitespaces
Sun, 07 Aug 2016 14:06:20 +0000 cmdutil: remove duplicated badmatch call in cat()
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com> [Sun, 07 Aug 2016 14:06:20 +0000] rev 29739
cmdutil: remove duplicated badmatch call in cat() Subrepo logic is handled in ctx.walk().
Fri, 05 Aug 2016 15:48:09 +0200 statichttprepo: do not try to write caches
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 05 Aug 2016 15:48:09 +0200] rev 29738
statichttprepo: do not try to write caches The static http repository are read only, there is no hope in any cache writing attempt.
Sat, 06 Aug 2016 22:24:33 +0900 demandimport: omit default value of "level" at construction of _demandmod
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 06 Aug 2016 22:24:33 +0900] rev 29737
demandimport: omit default value of "level" at construction of _demandmod This makes construction of _demandmod require explicit level value, and helps to avoid issues like issue5208 in the future.
Sat, 06 Aug 2016 22:24:33 +0900 demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 06 Aug 2016 22:24:33 +0900] rev 29736
demandimport: import sub-module relatively as expected (issue5208) Before this patch, importing sub-module might (1) fail or (2) success but import incorrect module, because demandimport tries to import sub-module with level=-1 (on Python 2.x) or level=0 (on Python 3.x), which is default value of "level" argument at construction of "_demandmod" proxy object. (1) on Python 3.x, importing sub-module always fails to import existing sub-module (2) both on Python 2.x and 3.x, importing sub-module might import same name module on root level unintentionally On Python 2.x, existing sub-module is prior to this unexpected module. Therefore, this problem hasn't appeared. To import sub-module relatively as expected, this patch specifies "1" as import level explicitly at construction of "_demandmod" proxy object for sub-module.
Sat, 06 Aug 2016 15:00:34 -0700 wireproto: remove gboptslist (API)
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 06 Aug 2016 15:00:34 -0700] rev 29735
wireproto: remove gboptslist (API) This variable has been unused since ce25f465e572, which was over 2 years ago. gboptsmap should be used instead. Marking as API because this could break extensions.
Sat, 06 Aug 2016 13:55:21 -0700 wireproto: unescape argument names in batch command (BC)
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 06 Aug 2016 13:55:21 -0700] rev 29734
wireproto: unescape argument names in batch command (BC) Clients escape both argument names and values when using the batch command. Yet the server was only unescaping argument values. Fortunately we don't have any argument names that need escaped. But that isn't an excuse to lack symmetry in the code. Since the server wasn't properly unescaping argument names, this means we can never introduce an argument to a batchable command that needs escaped because an old server wouldn't properly decode its name. So we've introduced an assertion to detect the accidental introduction of this in the future. Of course, we could introduce a server capability that says the server knows how to decode argument names and allow special argument names to go through. But until there is a need for it (which I doubt there will be), we shouldn't bother with adding an unused capability.
Sat, 06 Aug 2016 13:46:28 -0700 wireproto: consolidate code for obtaining "cmds" argument value
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 06 Aug 2016 13:46:28 -0700] rev 29733
wireproto: consolidate code for obtaining "cmds" argument value Both wireproto.py and sshpeer.py had code for producing the value to the "cmds" argument used by the "batch" command. This patch extracts that code to a standalone function and uses it.
Fri, 05 Aug 2016 15:35:02 -0400 revlog: use `iter(callable, sentinel)` instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 15:35:02 -0400] rev 29732
revlog: use `iter(callable, sentinel)` instead of while True This is functionally equivalent, but is a little more concise.
Fri, 05 Aug 2016 14:00:56 -0400 md5sum: use `iter(callable, sentinel)` instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 14:00:56 -0400] rev 29731
md5sum: use `iter(callable, sentinel)` instead of while True This is functionally equivalent, but is a little more concise.
Fri, 05 Aug 2016 14:00:46 -0400 util: use `iter(callable, sentinel)` instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 14:00:46 -0400] rev 29730
util: use `iter(callable, sentinel)` instead of while True This is functionally equivalent, but is a little more concise.
Fri, 05 Aug 2016 14:00:39 -0400 url: use `iter(callable, sentinel)` instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 14:00:39 -0400] rev 29729
url: use `iter(callable, sentinel)` instead of while True This is functionally equivalent, but is a little more concise.
Fri, 05 Aug 2016 14:00:30 -0400 sshserver: use `iter(callable, sentinel)` instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 14:00:30 -0400] rev 29728
sshserver: use `iter(callable, sentinel)` instead of while True This is functionally equivalent, but is a little more concise.
Fri, 05 Aug 2016 14:00:22 -0400 sshpeer: use `iter(callable, sentinel)` instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 14:00:22 -0400] rev 29727
sshpeer: use `iter(callable, sentinel)` instead of while True This is functionally equivalent, but is a little more concise.
Fri, 05 Aug 2016 14:00:14 -0400 patch: use `iter(callable, sentinel)` instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 14:00:14 -0400] rev 29726
patch: use `iter(callable, sentinel)` instead of while True This is functionally equivalent, but is a little more concise.
Fri, 05 Aug 2016 14:00:08 -0400 commands: use `iter(callable, sentinel)` instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 14:00:08 -0400] rev 29725
commands: use `iter(callable, sentinel)` instead of while True This is functionally equivalent, but is a little more concise.
Fri, 05 Aug 2016 13:59:58 -0400 changegroup: use `iter(callable, sentinel)` instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 13:59:58 -0400] rev 29724
changegroup: use `iter(callable, sentinel)` instead of while True This is functionally equivalent, but is a little more concise.
Wed, 27 Jul 2016 21:44:49 +0900 extdiff: isolate path variable of saved command to independent paragraph
Yuya Nishihara <yuya@tcha.org> [Wed, 27 Jul 2016 21:44:49 +0900] rev 29723
extdiff: isolate path variable of saved command to independent paragraph Otherwise, the whole paragraph wouldn't be translated.
Wed, 27 Jul 2016 21:42:24 +0900 extdiff: export __doc__ of saved command for translation
Yuya Nishihara <yuya@tcha.org> [Wed, 27 Jul 2016 21:42:24 +0900] rev 29722
extdiff: export __doc__ of saved command for translation
Wed, 27 Jul 2016 21:40:42 +0900 extdiff: refactor closure of saved diff command as a top-level class
Yuya Nishihara <yuya@tcha.org> [Wed, 27 Jul 2016 21:40:42 +0900] rev 29721
extdiff: refactor closure of saved diff command as a top-level class This allows us to collect __doc__ for translation.
Wed, 27 Jul 2016 21:53:14 +0900 i18n: use inspect.getsourcelines() to obtain lineno from func or class
Yuya Nishihara <yuya@tcha.org> [Wed, 27 Jul 2016 21:53:14 +0900] rev 29720
i18n: use inspect.getsourcelines() to obtain lineno from func or class Before, func must be a function object. I want to make it parse docstring of classes, too.
Fri, 05 Aug 2016 21:21:33 +0900 chg: just take it as EOF if recv() returns 0
Yuya Nishihara <yuya@tcha.org> [Fri, 05 Aug 2016 21:21:33 +0900] rev 29719
chg: just take it as EOF if recv() returns 0 hgc->sockfd is a blocking stream socket. recv() should never return 0 other than EOF. See 4fc4b8cc9957 for the original problem.
Thu, 04 Aug 2016 16:56:50 +0200 vfs: use propertycache for open
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 04 Aug 2016 16:56:50 +0200] rev 29718
vfs: use propertycache for open The current open method is currently behaving like a property cache. We use our utility decorator to make this explicit.
Mon, 08 Aug 2016 16:47:42 +0200 help: add example of '[templates]' usage stable
Mathias De Maré <mathias.demare@gmail.com> [Mon, 08 Aug 2016 16:47:42 +0200] rev 29717
help: add example of '[templates]' usage V2: - move from shortest() with minlength 8 to minlength 4 - mention [templates] in config.txt - better describe the difference between [templatealias] and [templates] V3: - choose a better example template
Fri, 05 Aug 2016 17:27:51 -0400 check-commit: allow underbars in cffi_-prefix function names
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 17:27:51 -0400] rev 29716
check-commit: allow underbars in cffi_-prefix function names It seems reasonable to give cffi functions slightly more verbose names in some circumstances, given the way they interface with C.
Fri, 05 Aug 2016 13:08:11 -0400 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 13:08:11 -0400] rev 29715
bundlerepo: add support for treemanifests in cg3 bundles This is a little messier than I'd like, and I'll probably come back and do some more refactoring later, but as it is this unblocks narrowhg. An alternative approach (which I may do as part of the mentioned refactoring) would be to construct *all* dirlog instances up front, so that we don't have to keep track of the linkmapper method. This would avoid a reference cycle between the bundlemanifest and the bundlerepository, but I was hesitant to do all the work up front like that. With this change, it's possible to do 'hg incoming' and 'hg pull' from bundles in .hg/strip-backup in a treemanifest repository. Sadly, this doesn't make it possible to 'hg clone' one of those (if you do 'hg strip 0'), because the cg3 in the bundle gets written without a treemanifest flag. Since that's going to be an involved refactor in a different part of the code (which I *suspect* won't touch any of the code I've just written here), let's leave it as an idea for Later.
Fri, 05 Aug 2016 11:19:22 -0400 auditvfs: forward options property from nested vfs
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 11:19:22 -0400] rev 29714
auditvfs: forward options property from nested vfs This was breaking my ability to use treemanifests in bundlerepos, and was deeply mysterious. We should probably just make the options property a formal part of the vfs API, and make it a required construction parameter. Sadly, I don't have time to dive into that refactor right now.
Thu, 04 Aug 2016 14:13:35 -0400 bundlerepo: use supportedincomingversions instead of allsupportedversions
Augie Fackler <augie@google.com> [Thu, 04 Aug 2016 14:13:35 -0400] rev 29713
bundlerepo: use supportedincomingversions instead of allsupportedversions Since bundlerepo is really a pull-like operation, this is the correct method to use here.
Fri, 05 Aug 2016 13:07:58 -0400 bundlerepo: introduce method to find file starts and use it
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 13:07:58 -0400] rev 29712
bundlerepo: introduce method to find file starts and use it This moves us to the modern iter() technique instead of the `while True` pattern since it's easy. Factored out as a function because I'm about to need this in a second place.
Fri, 05 Aug 2016 13:09:50 -0400 bundlerevlog: use for loop over iterator instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 13:09:50 -0400] rev 29711
bundlerevlog: use for loop over iterator instead of while True The iter() builtin has a neat pattern where you give it a callable of no arguments and a sentinel value, and you can then loop over the function calls like a normal iterator. This cleans up the code a little.
Fri, 05 Aug 2016 13:09:24 -0400 bundlerepo: use for loop over iterator instead of while True
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 13:09:24 -0400] rev 29710
bundlerepo: use for loop over iterator instead of while True The iter() builtin has a neat pattern where you give it a callable of no arguments and a sentinel value, and you can then loop over the function calls like a normal iterator. This cleans up the code a little.
Fri, 05 Aug 2016 12:47:03 -0400 localrepo: jettison now-unused dirlog() method from localrepo
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 12:47:03 -0400] rev 29709
localrepo: jettison now-unused dirlog() method from localrepo
Fri, 05 Aug 2016 13:01:01 -0400 repair: build dirlogs using manifest, rather than repo shortcut method
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 13:01:01 -0400] rev 29708
repair: build dirlogs using manifest, rather than repo shortcut method As before, this was rarely used, so let's get rid of the convenience method.
Fri, 05 Aug 2016 13:00:33 -0400 cmdutil: open dirlogs via manifest property, not via repo
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 13:00:33 -0400] rev 29707
cmdutil: open dirlogs via manifest property, not via repo This was a convenience method that was rarely used, so let's get rid of it.
Fri, 05 Aug 2016 16:34:30 -0400 wirepeer: rename confusing `source` parameter
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 16:34:30 -0400] rev 29706
wirepeer: rename confusing `source` parameter It's named "url" everyplace else this method is defined, so let's be consistent.
Fri, 05 Aug 2016 13:44:17 +0200 develwarn: use the lock helper in local repo
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 05 Aug 2016 13:44:17 +0200] rev 29705
develwarn: use the lock helper in local repo We have a helper function to know if a lock is taken. When checking lock usage we now use it instead of manually accessing the locks.
Fri, 05 Aug 2016 16:25:15 -0400 exchange: correctly specify url to unbundle (issue5145) stable
Augie Fackler <augie@google.com> [Fri, 05 Aug 2016 16:25:15 -0400] rev 29704
exchange: correctly specify url to unbundle (issue5145) This parameter is slightly confusingly named in wireproto, so it got mis-specified from the start as 'push' instead of the URL to which we are pushing. Sigh. I've got a patch for that which I'll mail separately since it's not really appropriate for stable. Fixes a regression in bundle2 from bundle1.
Sat, 19 Mar 2016 17:19:03 -0700 debugextension: change "testedwith" to a list (BC)
Yuya Nishihara <yuya@tcha.org> [Sat, 19 Mar 2016 17:19:03 -0700] rev 29703
debugextension: change "testedwith" to a list (BC) It wasn't a list since the formatter couldn't process a list. We have no such problem now and the -T option is experimental, so we can change it.
Sun, 10 Jul 2016 22:07:34 +0900 debugextensions: unindent nested if
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jul 2016 22:07:34 +0900] rev 29702
debugextensions: unindent nested if
Sun, 10 Jul 2016 22:06:13 +0900 debugextensions: give short name to util.version()
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jul 2016 22:06:13 +0900] rev 29701
debugextensions: give short name to util.version()
Sun, 10 Jul 2016 21:59:43 +0900 debugextensions: simply keep testedwith variable as a list
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jul 2016 21:59:43 +0900] rev 29700
debugextensions: simply keep testedwith variable as a list There should be no need to distinguish [] and None.
Thu, 28 Jul 2016 16:27:35 -0400 test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com> [Thu, 28 Jul 2016 16:27:35 -0400] rev 29699
test-treemanifest: ensure manifest command isn't broken I realized we weren't testing this while hunting a broken manifest command bug that ended up being narrowhg's fault.
Thu, 04 Aug 2016 00:32:19 +0530 py3: use unicode literals in pure/osutil.py
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 Aug 2016 00:32:19 +0530] rev 29698
py3: use unicode literals in pure/osutil.py The first element of _fields_ tuples must be a str in Python 3. Also fix some function calls that were also expecting str.
Thu, 04 Aug 2016 00:21:14 +0530 py3: use unicode literals in crecord.py
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 Aug 2016 00:21:14 +0530] rev 29697
py3: use unicode literals in crecord.py
Thu, 04 Aug 2016 00:15:39 +0530 py3: use unicode literals in changelog.py
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 Aug 2016 00:15:39 +0530] rev 29696
py3: use unicode literals in changelog.py collections.namedtuple type and field names must be str in Python 3. Our custom module importer was rewriting them to bytes literals, making this fail. In addition, __slots__ values must also be unicode.
Mon, 25 Jul 2016 15:10:52 +0200 mpatch: write a cffi version of mpatch.patches
Maciej Fijalkowski <fijall@gmail.com> [Mon, 25 Jul 2016 15:10:52 +0200] rev 29695
mpatch: write a cffi version of mpatch.patches
Fri, 22 Jul 2016 17:28:05 +0200 mpatch: remove dependency on Python.h in mpatch.c
Maciej Fijalkowski <fijall@gmail.com> [Fri, 22 Jul 2016 17:28:05 +0200] rev 29694
mpatch: remove dependency on Python.h in mpatch.c Now all the CPython-related stuff are referenced only from mpatch_module.c with mpatch.c being freely usable from a future cffi module
Mon, 18 Jul 2016 19:02:30 +0200 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com> [Mon, 18 Jul 2016 19:02:30 +0200] rev 29693
mpatch: split mpatch into two files
Mon, 18 Jul 2016 16:25:14 +0200 mpatch: provide things that will be exported later with a prefixed name
Maciej Fijalkowski <fijall@gmail.com> [Mon, 18 Jul 2016 16:25:14 +0200] rev 29692
mpatch: provide things that will be exported later with a prefixed name For cffi a bunch of mpatch functions need to be visible through a .h file. This change renames them so it won't create potential c namespace conflicts.
Mon, 18 Jul 2016 15:14:40 +0200 mpatch: change Py_ssize_t to ssize_t in places that will be later copied
Maciej Fijalkowski <fijall@gmail.com> [Mon, 18 Jul 2016 15:14:40 +0200] rev 29691
mpatch: change Py_ssize_t to ssize_t in places that will be later copied
Wed, 03 Aug 2016 22:07:52 -0700 discovery: move code to create outgoing from roots and heads
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 03 Aug 2016 22:07:52 -0700] rev 29690
discovery: move code to create outgoing from roots and heads changegroup.changegroupsubset() contained somewhat low-level code for constructing an "outgoing" instance from a list of roots and heads nodes. It feels like discovery.py is a more appropriate location for this code. This code can definitely be optimized, as outgoing.missing will recompute the set of changesets we've already discovered from cl.between(). But code shouldn't be refactored during a move, so I've simply inserted a TODO calling attention to that.
Wed, 03 Aug 2016 16:23:26 +0200 bundle2: remove 'experimental.bundle2-exp' boolean config (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 Aug 2016 16:23:26 +0200] rev 29689
bundle2: remove 'experimental.bundle2-exp' boolean config (BC) All users are migrated to 'devel.legacy.exchange', we can clean up the experimental namespace. Marking as (BC) because I know some large installation have bundle2 off and I want to make sure they notice the change.
Wed, 03 Aug 2016 15:52:11 +0200 tests: remove all remaining usage of experimental.bundle2-exp
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 Aug 2016 15:52:11 +0200] rev 29688
tests: remove all remaining usage of experimental.bundle2-exp The only remaining usage of the experimental config were enforcing bundle2 on. These are very old remains of when bundle2 was off by default. This was also useful to highlight the fact that this was a bundle2 run and that a bundle1 one was nearby. However, we want a future developer working on bundle3 to notice possible output/behavior change on these tests and take them in account. So we do not enforce bundle2 for these runs. We leave a comment around to make sure dev still notice the bundle1 version.
Wed, 03 Aug 2016 15:39:55 +0200 tests: use 'legacy.exchange' option in various mixed tests
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 Aug 2016 15:39:55 +0200] rev 29687
tests: use 'legacy.exchange' option in various mixed tests The new option will stay around. The experimental option was only meant to be temporary. We update various tests that validate both bundle1 and bundle2 version side by side. This changeset only takes care of enforcing bundle1. The other use of 'experimental.bundle2-exp=True' will be taken care of in the next changeset.
Wed, 03 Aug 2016 15:34:03 +0200 tests: use 'legacy.exchange' option in various bundle1 tests
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 Aug 2016 15:34:03 +0200] rev 29686
tests: use 'legacy.exchange' option in various bundle1 tests The new option will stay around. The experimental option was only meant to be temporary.
Tue, 02 Aug 2016 15:23:03 +0200 tests: use 'legacy.exchange' option in 'test-bundle2-exchange.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 15:23:03 +0200] rev 29685
tests: use 'legacy.exchange' option in 'test-bundle2-exchange.t' The new option will stay around. The experimental option was only meant to be temporary.
Wed, 03 Aug 2016 16:42:10 +0200 bundlerepo: also read the 'devel.legacy.exchange' config
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 Aug 2016 16:42:10 +0200] rev 29684
bundlerepo: also read the 'devel.legacy.exchange' config Bundlerepo does its own bundle2 related logic.
Tue, 02 Aug 2016 14:48:21 +0200 bundle2: add a devel option controling bundle version used for exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 14:48:21 +0200] rev 29683
bundle2: add a devel option controling bundle version used for exchange We need an official way to force bundle1 to be used in test. We introduce a new option 'devel.legacy.exchange' to control this. When specified, this option will control the list of bundle version Mercurial consider when exchanging with a peer. Current valid value are 'bundle1' and 'bundle2'. Using this option in all tests will allow us to remove the 'experimental.bundle2-exp' option. We will simplify the code once the experimental option is dropped.
Wed, 03 Aug 2016 15:01:23 +0200 bundle2: rename the _canusebundle2 method to _forcebundle1
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 Aug 2016 15:01:23 +0200] rev 29682
bundle2: rename the _canusebundle2 method to _forcebundle1 We rename and invert the logic of the _canusebundle2 utility. The idea here is that we need to have a way to enforce the use of bundle1 in the tests. The Mercurial philosophy is to try to use the best method available. Currently that best method is bundle2, but this might change in the future. Therefore expressing "do not use bundle2" is a loosy way to say "use bundle 1" and will likely create issue in the future. As the config option will be explicitly about bundle1, we rename the function beforehand to align with this. This will make the life of a future developer working on bundle3 easier.
Wed, 03 Aug 2016 14:24:09 +0200 tests: remove bundle2 activation from test-bookmark-pushpull.t
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 Aug 2016 14:24:09 +0200] rev 29681
tests: remove bundle2 activation from test-bookmark-pushpull.t This is an old config that predate bundle2 on by default. This should have been remove after Mercurail 3.6 got released.
Thu, 04 Aug 2016 19:51:03 +0800 tests: update bugzilla link in test-issue1175.t
Anton Shestakov <av6@dwimlabs.net> [Thu, 04 Aug 2016 19:51:03 +0800] rev 29680
tests: update bugzilla link in test-issue1175.t
Sun, 31 Jul 2016 17:11:48 +0900 journal: use fm.formatdate() to pass date tuple in appropriate type (BC)
Yuya Nishihara <yuya@tcha.org> [Sun, 31 Jul 2016 17:11:48 +0900] rev 29679
journal: use fm.formatdate() to pass date tuple in appropriate type (BC)
Sun, 31 Jul 2016 17:07:29 +0900 formatter: add function to convert date tuple to appropriate format
Yuya Nishihara <yuya@tcha.org> [Sun, 31 Jul 2016 17:07:29 +0900] rev 29678
formatter: add function to convert date tuple to appropriate format
Sun, 31 Jul 2016 16:56:26 +0900 journal: use fm.formatlist() to pass hashes in appropriate type (BC)
Yuya Nishihara <yuya@tcha.org> [Sun, 31 Jul 2016 16:56:26 +0900] rev 29677
journal: use fm.formatlist() to pass hashes in appropriate type (BC)
Sun, 10 Jul 2016 21:03:06 +0900 formatter: add function to convert list to appropriate format (issue5217)
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jul 2016 21:03:06 +0900] rev 29676
formatter: add function to convert list to appropriate format (issue5217) Before, it wasn't possible for formatter to handle array structure other than date tuple. We've discussed that at the last sprint, which ended we would probably want to allow only templatable data structure, i.e. a list of dicts: data(tags=[{'tag': a}, {'tag': b}, ...]) Unfortunately, it turned out not working well with template functions: "{ifcontains(a, tags, ...)}" ^^^^^^^^^^^^^^^^^^ "a in tags", where tags should be a plain list/set of tags So the formatter must at least know if the type [{}] was constructed from a plain list or was actually a list of dicts. This patch introduces new explicit interface to convert an array structure to an appropriate data type for the current formatter, which can be used as follows: fm.write('tags', _('tags: %s\n'), fm.formatlist(tags, name='tag')) No separate fm.data() call should be necessary.
Sun, 31 Jul 2016 16:38:16 +0900 journal: use fm.hexfunc() to get full hash in JSON/template output (BC)
Yuya Nishihara <yuya@tcha.org> [Sun, 31 Jul 2016 16:38:16 +0900] rev 29675
journal: use fm.hexfunc() to get full hash in JSON/template output (BC) We generally do that.
Thu, 04 Aug 2016 00:04:48 +0530 py3: update test-check-py3-compat.t output
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 Aug 2016 00:04:48 +0530] rev 29674
py3: update test-check-py3-compat.t output The lower part of test-check-py3-compat.t runs only on py3 and hence its remain unchanged. Hence this patch updates the output so that change in output in the next patches will be only related to the change in the patch.
Tue, 02 Aug 2016 16:51:27 +0200 deprecation: enforce thew 'tr' argument of 'dirstate.write' (API)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 16:51:27 +0200] rev 29673
deprecation: enforce thew 'tr' argument of 'dirstate.write' (API) Compatibility was meant to be drop after 3.9 is released.
Tue, 02 Aug 2016 14:54:06 +0200 tests: remove initial bundle2 enabling in various bundle2 tests
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 14:54:06 +0200] rev 29672
tests: remove initial bundle2 enabling in various bundle2 tests Bundle 2 is enable by default since 3.6 so we don't need this anymore. The remaining use of 'experimental.bundle2-exp' are there to test legacy behavior with bundle 1. Future patches will introduce a way outside of experimental to test that.
Tue, 02 Aug 2016 15:44:51 +0200 tests: remove bundle2 activation from test-largefiles.t
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 15:44:51 +0200] rev 29671
tests: remove bundle2 activation from test-largefiles.t This is an old config that predate bundle2 on by default. This should have been remove after Mercurail 3.6 got released.
Tue, 02 Aug 2016 15:05:57 +0200 tests: remove bundle2 activation from test-tags.t
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 15:05:57 +0200] rev 29670
tests: remove bundle2 activation from test-tags.t This is an old config that predate bundle2 on by default. This should have been remove after Mercurail 3.6 got released.
Sat, 23 Jul 2016 13:08:43 +0900 templatekw: change joinfmt to a mandatory argument of _hybrid object
Yuya Nishihara <yuya@tcha.org> [Sat, 23 Jul 2016 13:08:43 +0900] rev 29669
templatekw: change joinfmt to a mandatory argument of _hybrid object We've fixed several bugs caused by the misuse of the default joinfmt. Make it more explicit to prevent future bugs. dict.values()[0] is replaced by dict[element] as showlist() knows what the key is.
Mon, 01 Aug 2016 17:38:01 -0700 convert: move svn config initializer out of the module level stable
Durham Goode <durham@fb.com> [Mon, 01 Aug 2016 17:38:01 -0700] rev 29668
convert: move svn config initializer out of the module level The svn_config_get_config config call was being called at the module level, but had the potential to throw permission denied errors if ~/.subversion/servers was not readable. This could happen in certain test environments where the user permissions were very particular. This prevented the remotenames extension from loading, since it imports convert's hg module, which imports convert's subversion module, which calls this. The config is only ever used from this one constructor, so let's just move it in to there.
Thu, 04 Aug 2016 19:53:46 +0800 osx: update bugzilla link in readme stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 04 Aug 2016 19:53:46 +0800] rev 29667
osx: update bugzilla link in readme
Thu, 04 Aug 2016 19:50:25 +0800 win32: update link to mailing list in readme stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 04 Aug 2016 19:50:25 +0800] rev 29666
win32: update link to mailing list in readme
Thu, 04 Aug 2016 19:50:06 +0800 win32: update wiki link in mercurial.ini stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 04 Aug 2016 19:50:06 +0800] rev 29665
win32: update wiki link in mercurial.ini
Thu, 04 Aug 2016 19:49:07 +0800 debian: update source URL in copyright file stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 04 Aug 2016 19:49:07 +0800] rev 29664
debian: update source URL in copyright file
Thu, 04 Aug 2016 10:42:03 +0800 help: update link to wiki/CommandServer stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 04 Aug 2016 10:42:03 +0800] rev 29663
help: update link to wiki/CommandServer
Mon, 18 Jul 2016 23:12:09 +0900 url: drop compatibility wrapper of socket.create_connection()
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Jul 2016 23:12:09 +0900] rev 29662
url: drop compatibility wrapper of socket.create_connection() It should be available on Python 2.6+.
Sat, 14 May 2016 14:37:25 +0900 doc: remove double imports of inspect from hgmanpage.py
Yuya Nishihara <yuya@tcha.org> [Sat, 14 May 2016 14:37:25 +0900] rev 29661
doc: remove double imports of inspect from hgmanpage.py
Tue, 05 May 2015 10:51:34 +0900 merge: concatenate default conflict marker at parsing phase of .py
Yuya Nishihara <yuya@tcha.org> [Tue, 05 May 2015 10:51:34 +0900] rev 29660
merge: concatenate default conflict marker at parsing phase of .py "+" operations are unnecessary.
Tue, 02 Aug 2016 03:54:17 +0200 tests: remove bundle2 activation from test-push-warn.t
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 03:54:17 +0200] rev 29659
tests: remove bundle2 activation from test-push-warn.t This is an old config that predate bundle2 on by default. This should have been remove after Mercurail 3.6 got released.
Tue, 02 Aug 2016 03:53:48 +0200 tests: remove bundle2 activation from test-phases-exchanges.t
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 03:53:48 +0200] rev 29658
tests: remove bundle2 activation from test-phases-exchanges.t This is an old config that predate bundle2 on by default. This should have been remove after Mercurail 3.6 got released.
Tue, 02 Aug 2016 03:53:17 +0200 tests: remove bundle2 activation from test-obsolete.t
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 03:53:17 +0200] rev 29657
tests: remove bundle2 activation from test-obsolete.t This is an old config that predate bundle2 on by default. This should have been remove after Mercurail 3.6 got released.
Tue, 02 Aug 2016 03:53:05 +0200 tests: remove bundle2 activation from test-http-proxy.t
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 03:53:05 +0200] rev 29656
tests: remove bundle2 activation from test-http-proxy.t This is an old config that predate bundle2 on by default. This should have been remove after Mercurail 3.6 got released.
Tue, 02 Aug 2016 03:50:58 +0200 tests: remove bundle2 activation from test-hook.t
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 03:50:58 +0200] rev 29655
tests: remove bundle2 activation from test-hook.t This is an old config that predate bundle2 on by default. This should have been remove after Mercurail 3.6 got released.
Tue, 02 Aug 2016 03:50:42 +0200 tests: remove bundle2 activation from test-acl.t
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 Aug 2016 03:50:42 +0200] rev 29654
tests: remove bundle2 activation from test-acl.t This is an old config that predate bundle2 on by default. This should have been remove after Mercurail 3.6 got released.
Mon, 01 Aug 2016 13:14:13 -0400 merge with stable
Augie Fackler <augie@google.com> [Mon, 01 Aug 2016 13:14:13 -0400] rev 29653
merge with stable
Mon, 01 Aug 2016 12:37:25 -0400 Added signature for changeset 299546f84e68 stable
Augie Fackler <raf@durin42.com> [Mon, 01 Aug 2016 12:37:25 -0400] rev 29652
Added signature for changeset 299546f84e68
Mon, 01 Aug 2016 12:37:23 -0400 Added tag 3.9 for changeset 299546f84e68 stable
Augie Fackler <raf@durin42.com> [Mon, 01 Aug 2016 12:37:23 -0400] rev 29651
Added tag 3.9 for changeset 299546f84e68
Mon, 01 Aug 2016 12:11:56 -0400 merge with i18n stable 3.9
Augie Fackler <augie@google.com> [Mon, 01 Aug 2016 12:11:56 -0400] rev 29650
merge with i18n
Mon, 01 Aug 2016 06:08:27 +0900 doc: make previous line of certificate example end with "::" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 01 Aug 2016 06:08:27 +0900] rev 29649
doc: make previous line of certificate example end with "::" Before this patch, certificate example is formatted just as normal text.
Mon, 01 Aug 2016 06:08:27 +0900 doc: fix incorrect use of rst hg role in help text stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 01 Aug 2016 06:08:27 +0900] rev 29648
doc: fix incorrect use of rst hg role in help text
Mon, 01 Aug 2016 06:08:26 +0900 doc: use field rst syntax to show keywords in debugdeltachain help correctly stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 01 Aug 2016 06:08:26 +0900] rev 29647
doc: use field rst syntax to show keywords in debugdeltachain help correctly List of available keywords is well formatted as a list of fields in doc string, but is formatted as just normal text in online help output.
Mon, 01 Aug 2016 06:08:26 +0900 revset: refactor to make xgettext put i18n comments into hg.pot file stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 01 Aug 2016 06:08:26 +0900] rev 29646
revset: refactor to make xgettext put i18n comments into hg.pot file xgettext expects both "_()" and (a part of) text to be placed at just next line of "i18n:" comment.
Mon, 01 Aug 2016 06:08:26 +0900 doc: omit useless _() invocation stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 01 Aug 2016 06:08:26 +0900] rev 29645
doc: omit useless _() invocation In this case, column positioning isn't needed for i18n, too. Maybe, check-code warning "missing _() in ui message" caused this useless _() invocation in 92d37fb3f1aa.
Mon, 01 Aug 2016 06:08:25 +0900 doc: trim newline at the end of exception message stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 01 Aug 2016 06:08:25 +0900] rev 29644
doc: trim newline at the end of exception message
Mon, 01 Aug 2016 08:27:22 +0900 i18n-ja: synchronized with 6fd751fa58d3 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 01 Aug 2016 08:27:22 +0900] rev 29643
i18n-ja: synchronized with 6fd751fa58d3
Sun, 31 Jul 2016 05:39:59 +0900 demandimport: avoid infinite recursion at actual module importing (issue5304) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 31 Jul 2016 05:39:59 +0900] rev 29642
demandimport: avoid infinite recursion at actual module importing (issue5304) Before this patch, importing C module on Windows environment causes infinite recursion call, if py2exe is used with -b2 option. At importing C module "a.b", extra hooking by zipextimporter of py2exe causes: 0. assumption before accessing "b" of "a": - built-in module object is created for "a", (= "a" is actually imported) - _demandmod is created for "a.b" as a proxy object, and (= "a.b" is not yet imported) - an attribute "b" of "a" is initialized by the latter 1. invocation of __import__ via _hgextimport() in _demandmod._load() for "a.b" implies _demandimport() for "a.b" This is unintentional, because _demandmod might be returned by _hgextimport() instead of built-in module object. 2. _demandimport() at (1) is invoked with not context of "a", but context of zipextimporter Just after invocation of _hgextimport() in _demandimport(), an attribute "b" of the built-in module object for "a" is still bound to the proxy object for "a.b", because context of "a" isn't updated by actual importing "a.b". even though the built-in module object for "a.b" already appears in sys.modules. Therefore, chainmodules() returns _demandmod for "a.b", which is gotten from the attribute "b" of "a". 3. processfromitem() on "a.b" causes _demandmod._load() for "a.b" again _demandimport() takes context of "a" in this case. Therefore, attributes below are bound to built-in module object for "a.b", as expected: - "b" of built-in module object for "a" - _module of _demandmod for "a.b" 4. but _demandimport() invoked at (1) returns _demandmod object because _demandimport() just returns the object returned by chainmodules() at (3) above. 5. then, _demandmod._load() causes infinite recursion call _demandimport() returns _demandmod for "a.b", and it is "self" at _demandmod._load(). To avoid infinite recursion at actual module importing, this patch uses self._module, if _hgextimport() returns _demandmod itself. If _demandmod._module isn't yet bound at this point, execution should be aborted, because actual importing failed. In this patch, _demandmod._module is examined not on _demandimport() side, but on _demandmod._load() side, because: - the former has some exit points - only the latter uses _hgextimport(), except for _demandimport() BTW, this issue occurs only in the code path for non .py/.pyc files in zipextimporter (strictly speaking, in _memimporter) of py2exe. Even if zipextimporter is enabled, .py/.pyc files are handled by zipimporter, and it doesn't imply unintentional _demandimport() at invocation of __import__ via _hgextimport().
Fri, 29 Jul 2016 00:45:24 +0200 packagelib: do not remove packages directory in hggetversion (issue5262) stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 29 Jul 2016 00:45:24 +0200] rev 29641
packagelib: do not remove packages directory in hggetversion (issue5262) People running packages related code probably do care about the content of this directory. In particular this shound fix the rpm builder process.
Fri, 29 Jul 2016 00:39:59 +0200 make: introduce a target to clean everything but packages stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 29 Jul 2016 00:39:59 +0200] rev 29640
make: introduce a target to clean everything but packages Removing the 'packages' directory makes nightly builder life much harder.
Fri, 29 Jul 2016 12:46:07 +0100 url: avoid re-issuing incorrect password (issue3210) stable
Kim Randell <Kim.Randell@vicon.com> [Fri, 29 Jul 2016 12:46:07 +0100] rev 29639
url: avoid re-issuing incorrect password (issue3210) Some draconian IT setups lock accounts after a small number of incorrect password attempts. Mercurial's implementation of the urllib2 authentication was causing 5 retry attempts with the same credentials, without prompting the user. The code was attempting to check whether the authorization token had changed, but unfortunately was reading the misleading 'headers' member of the request instead of using the 'get_header' accessor. Modelled on fix for Python issue 8797: https://bugs.python.org/issue8797 https://hg.python.org/cpython/rev/30e8a8f22a2a
Wed, 27 Jul 2016 15:22:36 -0500 date: accept broader range of ISO 8601 time specs stable
Matt Mackall <mpm@selenic.com> [Wed, 27 Jul 2016 15:22:36 -0500] rev 29638
date: accept broader range of ISO 8601 time specs The "normal" ISO date/time includes a T between date and time. It also allows dropping the colons and seconds from the timespec. Add new patterns for these forms as well as tests.
Wed, 27 Jul 2016 15:20:34 -0500 date: parse ISO-style Z and +hh:mm timezone specs stable
Matt Mackall <mpm@selenic.com> [Wed, 27 Jul 2016 15:20:34 -0500] rev 29637
date: parse ISO-style Z and +hh:mm timezone specs
Wed, 27 Jul 2016 15:14:19 -0500 date: refactor timezone parsing stable
Matt Mackall <mpm@selenic.com> [Wed, 27 Jul 2016 15:14:19 -0500] rev 29636
date: refactor timezone parsing We want to be able to accept ISO 8601 style timezones that don't include a space separator, so we change the timezone parsing function to accept a full date string and return both the offset and the non-timezone portion.
Thu, 28 Jul 2016 08:53:36 -0700 tests: glob over ssl error stable
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 28 Jul 2016 08:53:36 -0700] rev 29635
tests: glob over ssl error We do this in the rest of the file. This bad line was introduced in 3fde328d0913.
Wed, 27 Jul 2016 13:57:51 +0100 keyword: avoid traceback when kwdemo is run outside a repo stable
Christian Ebert <blacktrash@gmx.net> [Wed, 27 Jul 2016 13:57:51 +0100] rev 29634
keyword: avoid traceback when kwdemo is run outside a repo f0564402d059 causes a fatal AttributeError if kwdemo is run outside a repo because in the temporary repo creation repo is None and therefore cannot have a baseui attribute. In this case fall back to using ui. Add test case.
Wed, 27 Jul 2016 08:38:54 +0000 cmdutil: warnings not issued in cat if subrepopath overlaps stable
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com> [Wed, 27 Jul 2016 08:38:54 +0000] rev 29633
cmdutil: warnings not issued in cat if subrepopath overlaps Previously a subrepository "sub" would cause no warnings to be issued for a file "subnot/a", if it's not present in the corresponding changeset when calling: hg cat subnot/a
Mon, 25 Jul 2016 17:00:42 +0200 graft: use opts.get() consistently stable
Gábor Stefanik <gabor.stefanik@nng.com> [Mon, 25 Jul 2016 17:00:42 +0200] rev 29632
graft: use opts.get() consistently Make life easier for extension writers.
Mon, 25 Jul 2016 12:00:55 -0700 sslutil: work around SSLContext.get_ca_certs bug on Windows (issue5313) stable
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 25 Jul 2016 12:00:55 -0700] rev 29631
sslutil: work around SSLContext.get_ca_certs bug on Windows (issue5313) SSLContext.get_ca_certs() can raise "ssl.SSLError: unknown error (_ssl.c:636)" on Windows. See https://bugs.python.org/issue20916 for more info. We add a try..except that swallows the exception to work around this bug. If we encounter the bug, we won't print a warning message about attempting to load CA certificates. This is unfortunate. But there appears to be little we can do :/
Mon, 18 Jul 2016 16:25:35 -0500 extdiff: escape path for docstring (issue5301) stable
Matt Mackall <mpm@selenic.com> [Mon, 18 Jul 2016 16:25:35 -0500] rev 29630
extdiff: escape path for docstring (issue5301) The existing code (a) assumed path would be specified in encoding.encoding and (b) assumed unicode() objects wouldn't cause other parts of Mercurial to blow up. Both are dangerous assumptions. Since we don't know the encoding of path and can't pass non-ASCII through docstrings, just escape the path and drop the early _(). Will have to suffice until we can teach docstrings to handle UTF-8b escaping. This has the side-effect that the line containing the path is now variable by the time it reaches _() and thus can't be translated.
Thu, 21 Jul 2016 15:55:47 -0700 update: fix bug when update tries to modify folder symlink stable
Kostia Balytskyi <ikostia@fb.com> [Thu, 21 Jul 2016 15:55:47 -0700] rev 29629
update: fix bug when update tries to modify folder symlink In 1e4512eac59e0114bc60ecbcdc4157fc0fa0439d, I introduced a new bug: when a symlink points to a folder in commit A and to another folder in commit B, while updating from A to B, Mercurial will try to use removedir on this symlink, which will fail. This is a very bad bug, since it basically renders symlinks to folders unusable in repos. Added test case fails without a fix and passes with it.
Mon, 25 Jul 2016 12:59:52 +0800 spartan: make annotate popup use theme colors stable
Anton Shestakov <av6@dwimlabs.net> [Mon, 25 Jul 2016 12:59:52 +0800] rev 29628
spartan: make annotate popup use theme colors
Mon, 25 Jul 2016 12:37:58 +0800 monoblue: make annotate popup use theme colors stable
Anton Shestakov <av6@dwimlabs.net> [Mon, 25 Jul 2016 12:37:58 +0800] rev 29627
monoblue: make annotate popup use theme colors
Mon, 25 Jul 2016 12:33:18 +0800 gitweb: make annotate popup use theme colors stable
Anton Shestakov <av6@dwimlabs.net> [Mon, 25 Jul 2016 12:33:18 +0800] rev 29626
gitweb: make annotate popup use theme colors
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip