Sun, 30 Sep 2012 15:31:27 +0200 pathencode: change isset name to avoid name collision
André Sintzoff <andre.sintzoff@gmail.com> [Sun, 30 Sep 2012 15:31:27 +0200] rev 17699
pathencode: change isset name to avoid name collision On old Mac OS X versions (10.4), arpa/inet.h (included in mercurial/util.h) includes system/param.h which defines isset macro.
Mon, 01 Oct 2012 23:11:28 -0500 Added signature for changeset b3f0f9a39c4e stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Oct 2012 23:11:28 -0500] rev 17698
Added signature for changeset b3f0f9a39c4e
Mon, 01 Oct 2012 23:11:25 -0500 Added tag 2.3.2 for changeset b3f0f9a39c4e stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Oct 2012 23:11:25 -0500] rev 17697
Added tag 2.3.2 for changeset b3f0f9a39c4e
Mon, 01 Oct 2012 23:06:14 -0500 merge with i18n stable 2.3.2
Matt Mackall <mpm@selenic.com> [Mon, 01 Oct 2012 23:06:14 -0500] rev 17696
merge with i18n
Sun, 23 Sep 2012 00:08:13 -0400 largefiles: download missing subrepo revs when archiving stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 23 Sep 2012 00:08:13 -0400] rev 17695
largefiles: download missing subrepo revs when archiving This is something plain hgsubrepos already do. Previously, an abort message complained about an unknown revision.
Mon, 01 Oct 2012 23:05:02 -0500 hgweb: change IE canvas test (issue3639)
Matt Mackall <mpm@selenic.com> [Mon, 01 Oct 2012 23:05:02 -0500] rev 17694
hgweb: change IE canvas test (issue3639) suggested by Peter Hull
Sun, 30 Sep 2012 23:53:56 +0200 store: optimize _pathencode by checking the length of the unencoded path
Adrian Buehlmann <adrian@cadifra.com> [Sun, 30 Sep 2012 23:53:56 +0200] rev 17693
store: optimize _pathencode by checking the length of the unencoded path If the input path is already longer than _maxstorepathlen, then we can skip doing the basic encoding (encodedir, _encodefname and _auxencode) and directly proceed to the hashed encoding. Those encodings, if at all, will make the path only longer.
Sun, 30 Sep 2012 23:53:56 +0200 pathencode: skip encoding if input is already longer than maxstorepathlen
Adrian Buehlmann <adrian@cadifra.com> [Sun, 30 Sep 2012 23:53:56 +0200] rev 17692
pathencode: skip encoding if input is already longer than maxstorepathlen Calling basicencode may make the path longer, never shorter. If it's already too long before, then we don't even need to basicencode it.
Sun, 30 Sep 2012 23:53:56 +0200 pathencode: simplify basicencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 30 Sep 2012 23:53:56 +0200] rev 17691
pathencode: simplify basicencode
Sun, 30 Sep 2012 23:53:56 +0200 test-hybridencode: in practice, extensions aren't really unbound in length
Adrian Buehlmann <adrian@cadifra.com> [Sun, 30 Sep 2012 23:53:56 +0200] rev 17690
test-hybridencode: in practice, extensions aren't really unbound in length due to the fact that we only get to encode files ending in .i and .d inside the store
Mon, 01 Oct 2012 21:54:04 +0200 Merge
Patrick Mezard <patrick@mezard.eu> [Mon, 01 Oct 2012 21:54:04 +0200] rev 17689
Merge
Thu, 27 Sep 2012 01:53:28 +0200 histedit-test: clarify the reason of a failure
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 27 Sep 2012 01:53:28 +0200] rev 17688
histedit-test: clarify the reason of a failure There is multiple conflict during this test. This add a small comment that highligh the reason of a particular failure.
Mon, 24 Sep 2012 15:46:01 +0200 histedit-test: make test-fold more verbose
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Sep 2012 15:46:01 +0200] rev 17687
histedit-test: make test-fold more verbose This helps to check the validity of fold result and debug potential issue.
Mon, 01 Oct 2012 03:19:23 +0200 bookmarks: teach the -r option to use revsets
David Soria Parra <dsp@php.net> [Mon, 01 Oct 2012 03:19:23 +0200] rev 17686
bookmarks: teach the -r option to use revsets
Sat, 29 Sep 2012 13:41:02 +0200 help: add example of paths other than default in hgrc
Juan Pablo Carbajal (desktop) <carbajal@ifi.uzh.ch> [Sat, 29 Sep 2012 13:41:02 +0200] rev 17685
help: add example of paths other than default in hgrc
Fri, 28 Sep 2012 19:43:40 +0900 i18n-ja: synchronized with f36f11f2bfce stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 28 Sep 2012 19:43:40 +0900] rev 17684
i18n-ja: synchronized with f36f11f2bfce
Sat, 29 Sep 2012 12:28:52 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 29 Sep 2012 12:28:52 -0500] rev 17683
merge with stable
Thu, 27 Sep 2012 14:38:03 -0700 lock: fixed race condition in trylock/testlock (issue3506) stable
Tomasz Kleczek <tomasz.kleczek@fb.com> [Thu, 27 Sep 2012 14:38:03 -0700] rev 17682
lock: fixed race condition in trylock/testlock (issue3506) Suppose the following scenario: 1. Process A takes the lock (e.g. on commit). 2. Process B wants to grab the lock. Since lock file exists the exception is raised. In the catch block the testlock function is called. 3. Process A releases the lock. 4. Process B tries to read the lock file as a part of testlock function. This results in OSError (ENOENT) and since we're not inside the exception handler function this is propagated and aborts the whole operation. To fix this we now check in testlock function whether lock file actually exists and if not (i.e. if readlock fails) we just return.
Sat, 29 Sep 2012 11:57:16 -0500 scmutil: backout 83785bb56062 (issue3643)
Matt Mackall <mpm@selenic.com> [Sat, 29 Sep 2012 11:57:16 -0500] rev 17681
scmutil: backout 83785bb56062 (issue3643)
Sat, 29 Sep 2012 13:34:37 +0200 help: removing trailing spaces
Juan Pablo Carbajal (desktop) <carbajal@ifi.uzh.ch> [Sat, 29 Sep 2012 13:34:37 +0200] rev 17680
help: removing trailing spaces
Sat, 29 Sep 2012 13:43:31 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Sat, 29 Sep 2012 13:43:31 +0200] rev 17679
Merge with stable
Sat, 29 Sep 2012 13:33:55 +0200 test-largefiles.t: fix find quirk on OSX stable
Patrick Mezard <patrick@mezard.eu> [Sat, 29 Sep 2012 13:33:55 +0200] rev 17678
test-largefiles.t: fix find quirk on OSX For some reason, find utility seems to preserve the trailing slash and append a new one on OSX: $ find somedir/ somedir/ somedir//somefile
Thu, 20 Sep 2012 19:02:47 +0200 clfilter: introduce `filteredrevs` attribute on changelog
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Sep 2012 19:02:47 +0200] rev 17677
clfilter: introduce `filteredrevs` attribute on changelog This changeset allows changelog object to be "filtered". You can assign a set of revision numbers to the `changelog.filteredrevs` attributes. The changelog will then pretends these revision does not exists in this repo. A few methods need to be altered to achieve this behavior: - tip - __iter_ - irevs - hasnode - headrevs For consistency and to help debugging, the following methods are altered too. Tests tend to show it's not necessary to alter them but have them raise proper exception helps to detect bad acces to filtered revisions. - rev - node - linkrev - parentrevs - flags The following methods would also need alteration for consistency purpose but this is non-trivial and not done yet. - nodemap - strip The C version of headrevs is not run if there is any revision to filter. It'll need a proper rewrite later to restore performance.
Mon, 03 Sep 2012 14:29:05 +0200 clfilter: remove any explicit revision number from default cmdutil range
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Sep 2012 14:29:05 +0200] rev 17676
clfilter: remove any explicit revision number from default cmdutil range Revision "0" and "-1" may be filtered, we can't use them in any default revrange.
Thu, 20 Sep 2012 19:01:53 +0200 clfilter: remove usage of `range` in favor of iteration over changelog
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Sep 2012 19:01:53 +0200] rev 17675
clfilter: remove usage of `range` in favor of iteration over changelog If we want to apply filtering at changelog level, we need to iterate over it. See previous changeset description for details.
Mon, 03 Sep 2012 14:19:45 +0200 clfilter: split `revlog.headrevs` C call from python code
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Sep 2012 14:19:45 +0200] rev 17674
clfilter: split `revlog.headrevs` C call from python code Make the pure python implementation of headrevs available to derived classes. It is important because filtering logic applied by `revlog` derived class won't have effect on `index`. We want to be able to bypass this C call to implement our own.
Mon, 03 Sep 2012 14:12:45 +0200 clfilter: handle non contiguous iteration in `revlov.headrevs`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Sep 2012 14:12:45 +0200] rev 17673
clfilter: handle non contiguous iteration in `revlov.headrevs` This prepares changelog level filtering. We can't assume that any revision can be heads because filtered revisions need to be excluded. New algorithm: - All revisions now start as "non heads", - every revision we iterate over is made candidate head, - parents of iterated revisions are definitely not head. Filtered revisions are never iterated over and never considered as candidate head.
Thu, 20 Sep 2012 19:00:59 +0200 clfilter: make the revlog class responsible of all its iteration
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Sep 2012 19:00:59 +0200] rev 17672
clfilter: make the revlog class responsible of all its iteration This prepares changelog level filtering. We need the algorithms used in revlog to work on a subset of revisions. To achieve this, the use of explicit range of revision is banned. `range` and `xrange` calls are replaced by a `revlog.irevs` method. Filtered super class can then overwrite the `irevs` method to filter out revision.
Mon, 03 Sep 2012 14:05:19 +0200 clfilter: introduce a `hassecret` function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 03 Sep 2012 14:05:19 +0200] rev 17671
clfilter: introduce a `hassecret` function We can only use copy clone if the cloned repo do not have any secret changeset. The current method for that is to run the "secret()" revset on the remote repo. But with proper filtering of hidden or unserved revision by the remote this revset won't return any revision even if some exist remotely. This changeset adds an explicit function to know if a repo have any secret revision or not. The other option would be to disable filtering for the query but I prefer the approach above, lighter both regarding code and performance.
Mon, 03 Sep 2012 14:03:38 +0200 filter: `updatebranchcache` during `addchangegroup` instead of after lock
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 03 Sep 2012 14:03:38 +0200] rev 17670
filter: `updatebranchcache` during `addchangegroup` instead of after lock The forced recomputation of the branch cache was introduced by `ee317dbfb9d0`. Back there, `addchangegroup` did not handle any lock logic. Later `ee1ed6afac21` introduced lock logic to `addchangegroup`. Its description does not explain why the `updatebranchcache` call is made outside locking. I believe that the lock was released there because it fit well with the transaction release already in the code. Finally `926a06f7a353` moved all "unlocked" code of `addchangegroup` to an `repo._afterlock` callback. I do not think that the call to `updatebranchcache()` requires to be done outside locking. That may even be a bad idea to do so. Bringing this call back in the `addchangegroup` function makes the flow simpler and eases the following up changelog level filtering business.
Wed, 01 Aug 2012 22:13:27 -0500 lock-checker: new contrib extension based on work done by Mads
Augie Fackler <raf@durin42.com> [Wed, 01 Aug 2012 22:13:27 -0500] rev 17669
lock-checker: new contrib extension based on work done by Mads This makes it possible to do lock validation as part of a normal test run. I didn't attempt any wlock validation because that's a bit more subtle to detect properly. Thanks to the initial patch from Mads for the idea.
Tue, 25 Sep 2012 20:50:40 +0300 resolve: commit the changes after each item resolve (issue3638)
Sergey Kishchenko <voidwrk@gmail.com> [Tue, 25 Sep 2012 20:50:40 +0300] rev 17668
resolve: commit the changes after each item resolve (issue3638) At the moment the resolve command doesn't save progress during the resolve process. In example if you try to resolve 100 conflicting files and interrupt the process (e.g., you close the external merge tool) after resolving 50 files you'll end up with 100 unresolved conflicts. Saving the progress helps a lot with long going merges. It's easy to achieve same behavior with simple script that calls resolve command for each unresolved file but it makes sense to make such behavior a default
Sat, 22 Sep 2012 14:53:50 +0900 bookmarks: rename arguments/variables for source code readability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 22 Sep 2012 14:53:50 +0900] rev 17667
bookmarks: rename arguments/variables for source code readability Before this patch, the argument bound to the source repository of incoming bookmarks for "bookmarks.diff()" is named as "remote". But in "hg outgoing" case, this argument is bound to local repository object. In addition to it, "local"/"remote" seem to mean not the direction of propagation of bookmarks, but just the location of cooperative repositories. To indicate the direction of propagation of bookmarks clearly on the source code, this patch uses "d(st)" and "s(rc)" combination instead of "l(ocal)" and "r(emote)" one. - "repo" and "remote" arguments are renamed to "dst" and "src" - "lmarks" and "rmarks" variables are renamed to "dmarsk" and "smarks"
Thu, 27 Sep 2012 13:54:47 +0200 histedit: move `continue` logic into a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 27 Sep 2012 13:54:47 +0200] rev 17666
histedit: move `continue` logic into a dedicated function When histedit "continue", there is several complicated logic to apply in order to detect intermediate changeset and concluded pending operation. This changeset extract this logic in a dedicated function to lighten the main one. No alteration to the logic is done.
Wed, 26 Sep 2012 18:13:00 +0200 histedit: rename `tip` to `topmost`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 26 Sep 2012 18:13:00 +0200] rev 17665
histedit: rename `tip` to `topmost` I expected `tip` to be repo's tip when it was the rewritten set tip. I rename the variable to the less ambiguous `topmost`.
Wed, 26 Sep 2012 14:46:08 +0200 histedit: factorise node stripping logic
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 26 Sep 2012 14:46:08 +0200] rev 17664
histedit: factorise node stripping logic Create a function dedicated to stripping a group of node. All existing duplicated code is replaced by call to this function. This new function take care of stripping known and relevant node only.
Wed, 26 Sep 2012 14:19:19 +0200 histedit: extract bookmark logic in a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 26 Sep 2012 14:19:19 +0200] rev 17663
histedit: extract bookmark logic in a dedicated function This lighten the main function and will help to see future changes to this bookmark logic.
Wed, 26 Sep 2012 12:57:23 +0200 histedit: remove all usages of hex[:12]
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 26 Sep 2012 12:57:23 +0200] rev 17662
histedit: remove all usages of hex[:12] - `node.hex(n)[:12]` is the same as `node.short(n)` - `ctx.hex()[:12]` is the same as `str(ctx)`
Thu, 27 Sep 2012 15:51:14 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 27 Sep 2012 15:51:14 -0500] rev 17661
merge with stable
Thu, 27 Sep 2012 15:50:14 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Thu, 27 Sep 2012 15:50:14 -0500] rev 17660
merge with i18n
Mon, 30 Jul 2012 20:56:41 -0400 largefiles: enable islfilesrepo() prior to a commit (issue3541) stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Jul 2012 20:56:41 -0400] rev 17659
largefiles: enable islfilesrepo() prior to a commit (issue3541) Previously, even if a file was added with --large, 'hg addremove' or 'hg ci -A' would add all files (including the previously added large files) as normal files. Only after a commit where a file was added with --large would subsequent adds or 'ci -A' take into account the minsize or the pattern configuration. This change more closely follows the help for largefiles, which mentions that 'add --large' is required to enable the configuration, but doesn't mention the previously required commit. Also, if 'hg add --large' was performed and then 'hg forget <file>' (both before a largefile enabling commit), the forget command would error out saying '.hglf/<file> not tracked'. This is also fixed. This reports that a repo is largefiles enabled as soon as a file is added with --large, which enables 'add', 'addremove' and 'ci -A' to honor the config settings before the first commit. Note that prior to the next commit, if all largefiles are forgotten, the repository goes back to reporting the repo as not largefiles enabled. It makes no sense to handle this by adding a --large option to 'addremove', because then it would also be needed for 'commit', but only when '-A' is specified. While this gets around the awkwardness of having to add a largefile, then commit it, and then addremove the other files when importing an existing codebase (and preserving that extra commit in permanent history), it does still require finding and manually adding one of the files as --large. Therefore it is probably desirable to have a --large option for init as well.
Mon, 30 Jul 2012 20:56:41 -0400 largefiles: handle commit -A properly, after a --large commit (issue3542) stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Jul 2012 20:56:41 -0400] rev 17658
largefiles: handle commit -A properly, after a --large commit (issue3542) Previous to this, 'commit -A' would add as normal files, files that were already committed as largefiles, resulting in files being listed twice by 'status -A'. It also missed when (only) a largefile was deleted, even though status reported it as '!'. This also has the side effect of properly reporting the state of the affected largefiles in the post commit hook after a remove that also affected a normal file (the largefiles used to be 'R', now are properly absent). Since scmutil.addremove() is called both by the ui command (after some trivial argument validation) and during the commit process when -A is specified, it seems like a more appropriate method to wrap than the addremove command. Currently, a repo is only enabled to use largefiles after an add that explicitly identifies some file as large, and a subsequent commit. Therefore, this patch only changes behavior after such a largefile enabling commit. Note that in the test, if the final commit had a '-v', 'removing large8' would be printed twice. Both of these originate in removelargefiles(). The first print is in verbose mode after traversing remove + forget, the second is because the '_isaddremove' attr is set and 'after' is not.
Tue, 25 Sep 2012 16:01:08 +0400 i18n-ru: synchronized with 6e2ab601be3f stable
Alexander Sauta <demosito@gmail.com> [Tue, 25 Sep 2012 16:01:08 +0400] rev 17657
i18n-ru: synchronized with 6e2ab601be3f
Tue, 25 Sep 2012 15:25:12 +0400 merge with i18n stable
Alexander Sauta <demosito@gmail.com> [Tue, 25 Sep 2012 15:25:12 +0400] rev 17656
merge with i18n
Fri, 14 Sep 2012 23:52:33 +0400 i18n-ru: fix spelling of "unrecognized response" translation stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Fri, 14 Sep 2012 23:52:33 +0400] rev 17655
i18n-ru: fix spelling of "unrecognized response" translation
Fri, 31 Aug 2012 02:06:29 +0900 localrepo: use "vfs" constructor/field for initialization around "store"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17654
localrepo: use "vfs" constructor/field for initialization around "store"
Fri, 31 Aug 2012 02:06:29 +0900 store: initialize "vfs" fields by "vfs" constructors
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17653
store: initialize "vfs" fields by "vfs" constructors For backwards compatibility, "opener" fields are still left as aliases for "vfs" ones.
Fri, 31 Aug 2012 02:06:29 +0900 store: rename "op" variables to "vfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17652
store: rename "op" variables to "vfs"
Fri, 31 Aug 2012 02:06:29 +0900 store: rename "openertype" argument to "vfstype"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17651
store: rename "openertype" argument to "vfstype"
Fri, 31 Aug 2012 02:06:29 +0900 localrepo: use "vfs" constructor instead of "opener" one
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17650
localrepo: use "vfs" constructor instead of "opener" one This patch also changes initialization order of "*opener" and "*vfs" fields: first, "*vfs" fields are initialized , and then, "*opener" ones are initialized.
Fri, 31 Aug 2012 02:06:29 +0900 scmutil: rename classes from "opener" to "vfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17649
scmutil: rename classes from "opener" to "vfs" For backwards compatibility, aliases for the old names are added, except for "abstractopener", "statichttpopener" and "_fncacheopener", because these are not used in Mercurial core implementation after this patch. "_fncacheopener" was only referred in "fncachestore" constructor, so this patch also renames from "_fncacheopener" to "_fncachevfs" there.
Mon, 13 Aug 2012 21:25:48 +0900 doc: add the tool to check section marks in help documents
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 13 Aug 2012 21:25:48 +0900] rev 17648
doc: add the tool to check section marks in help documents This patch adds "doc/check-seclevel.py" which checks below in help documents: - whether unknown or unavailable section marks are used or not - whether appropriate section mark is used at sub-sectioning It should be invoked in "doc" directory. It checks all help documents of Mercurial (topics, commands, extensions), if no file is specified by --file option. With --file option, it checks contents of the specified file as help document, for self testing purpose: -t/-c/-e/-C are used to specify what kind of help document contents of the specified file is. This checking is related to changeset 979b107eaea2.
Fri, 21 Sep 2012 19:27:22 +0200 histedit: replaces patching logic by merges
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 19:27:22 +0200] rev 17647
histedit: replaces patching logic by merges The old and fragile patching logic is replaced by smart merges (as rebase and graft do). This should prevents some conflicts and smoother human resolution. For this purpose the "foldchanges" function is renamed to "applychanges" and handle a single revision only.
Fri, 21 Sep 2012 19:13:25 +0200 histedit-test: ensure that non commute test will never commute
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 21 Sep 2012 19:13:25 +0200] rev 17646
histedit-test: ensure that non commute test will never commute The previous version would commute if using merge algorithm (to be accurate, merge will cleanly prompt the user during the merge). The new version create and initial commit with some content for all involved files en ensure all changes are a content changes of the first lines. This lead to guaranteed conflict when commuted.
Fri, 21 Sep 2012 19:25:19 +0200 histedit: display action being processed in debug mode
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 19:25:19 +0200] rev 17645
histedit: display action being processed in debug mode This is very useful when debugging histedit.
Fri, 21 Sep 2012 19:24:31 +0200 histedit: fold in memory
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 21 Sep 2012 19:24:31 +0200] rev 17644
histedit: fold in memory Update the folding code to works in memory instead of applying patches on the working directory. This is cleaner, faster and prepare the removal of the whole patching logic. This new collapse function will probably move into core sooner or later. A lot of other rewriting operation may benefit from it.
Fri, 21 Sep 2012 00:33:30 +0200 histedit: move makedesc function near other rules related function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 00:33:30 +0200] rev 17643
histedit: move makedesc function near other rules related function Having it in the middle of action logic is confusing
Fri, 21 Sep 2012 19:14:04 +0200 histedit: move `between function` outside the action logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 19:14:04 +0200] rev 17642
histedit: move `between function` outside the action logic Having this function in the middle of action and patching logic did not make sense
Fri, 21 Sep 2012 00:30:22 +0200 histedit document the makedest function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 00:30:22 +0200] rev 17641
histedit document the makedest function
Fri, 21 Sep 2012 00:30:07 +0200 histedit: documents the between function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 00:30:07 +0200] rev 17640
histedit: documents the between function
Mon, 24 Sep 2012 15:54:45 -0500 templatefilters: add parameterized date method
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:54:45 -0500] rev 17639
templatefilters: add parameterized date method
Mon, 24 Sep 2012 15:54:44 -0500 templatefilters: add parameterized fill function
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:54:44 -0500] rev 17638
templatefilters: add parameterized fill function
Mon, 24 Sep 2012 15:28:04 -0500 templater: pull in functions defined in templatefilters
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:28:04 -0500] rev 17637
templater: pull in functions defined in templatefilters
Mon, 24 Sep 2012 15:26:56 -0500 templater: add if/ifeq conditionals
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:26:56 -0500] rev 17636
templater: add if/ifeq conditionals
Mon, 24 Sep 2012 15:26:17 -0500 templater: add sub() function
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:26:17 -0500] rev 17635
templater: add sub() function
Mon, 24 Sep 2012 15:24:27 -0500 templater: correctly deal with r"" strings
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:24:27 -0500] rev 17634
templater: correctly deal with r"" strings
Sat, 22 Sep 2012 13:04:36 -0500 template: add join function
Matt Mackall <mpm@selenic.com> [Sat, 22 Sep 2012 13:04:36 -0500] rev 17633
template: add join function This allows: {join(files % "{files}", ", ") }\n to produce a properly comma-separated list
Sat, 22 Sep 2012 13:02:33 -0500 templater: factor out runtemplate method
Matt Mackall <mpm@selenic.com> [Sat, 22 Sep 2012 13:02:33 -0500] rev 17632
templater: factor out runtemplate method As a side-effect, this makes the output of runmap non-flattened
Fri, 21 Sep 2012 18:54:00 -0500 templating: make new-style templating features work with command line lists
Matt Mackall <mpm@selenic.com> [Fri, 21 Sep 2012 18:54:00 -0500] rev 17631
templating: make new-style templating features work with command line lists
Thu, 20 Sep 2012 23:30:59 -0400 formatter: improve implementation of data method
David M. Carr <david@carrclan.us> [Thu, 20 Sep 2012 23:30:59 -0400] rev 17630
formatter: improve implementation of data method This alternate syntax was proposed by Bryan O'Sullivan in a review of 772b3764d3e8. I haven't been able to measure any particular performance difference, but the new syntax is more concise and easier to read.
Wed, 19 Sep 2012 09:38:51 -0700 Merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 19 Sep 2012 09:38:51 -0700] rev 17629
Merge with crew-stable
Tue, 18 Sep 2012 19:46:15 +0900 archival: add "extended-timestamp" extra block for zip archives (issue3600) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 19:46:15 +0900] rev 17628
archival: add "extended-timestamp" extra block for zip archives (issue3600) Before this patch, zip archives created by "hg archive" are extracted with unexpected timestamp, if TZ is not configured as GMT. This patch adds "extended-timestamp" extra block to zip archives, and unzip will extract such archives with timestamp specified in added extra block, even though TZ is not configured as GMT. Please see documents below for detail about specification of zip file format and "extended-timestamp" extra block: http://www.pkware.com/documents/casestudies/APPNOTE.TXT http://www.opensource.apple.com/source/zip/zip-6/unzip/unzip/proginfo/extra.fld Original implementation of this patch was suggested by "Jun Omae <jun66j5@gmail.com>".
Tue, 18 Sep 2012 21:39:12 +0900 bookmarks: use "changectx.descendant()" for efficient descendant examination
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 21:39:12 +0900] rev 17627
bookmarks: use "changectx.descendant()" for efficient descendant examination This patch uses "old.descendant(new)" expression instead of "new in old.descendants()" for efficiency.
Tue, 18 Sep 2012 21:39:12 +0900 context: add "descendant()" to changectx for efficient descendant examination
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 21:39:12 +0900] rev 17626
context: add "descendant()" to changectx for efficient descendant examination This patch adds "descendant()", which uses "revlog.descendant()" for descendant examination, to changectx. This implementation is more efficient than "new in old.descendants()" expression, because: - "changectx.descendants()" creates temporary "changectx" objects, but "revlog.descendant()" doesn't "revlog.descendant()" checks only revision numbers of descendants. - "revlog.descendant()" stops scanning, when scanning of all revisions less than one of examination target is finished this can avoid useless scanning in "not descendant" case.
Tue, 18 Sep 2012 21:39:12 +0900 bookmarks: avoid redundant creation/assignment of "validdests" in "validdest()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 21:39:12 +0900] rev 17625
bookmarks: avoid redundant creation/assignment of "validdests" in "validdest()"
Wed, 19 Sep 2012 14:00:23 +0200 store: add a fallback _pathencode Python function
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 14:00:23 +0200] rev 17624
store: add a fallback _pathencode Python function which does the equivalent of parsers.pathencode, so it can be used as a default
Wed, 19 Sep 2012 13:58:51 +0200 store: move _plainhybridencode and _dothybridencode higher up in the file
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 13:58:51 +0200] rev 17623
store: move _plainhybridencode and _dothybridencode higher up in the file no functional change
Wed, 19 Sep 2012 11:39:18 +0200 test-hybridencode: use store._dothybridencode(s)
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 11:39:18 +0200] rev 17622
test-hybridencode: use store._dothybridencode(s) and compare it with the result of store._hybridencode(s, True)
Wed, 19 Sep 2012 11:39:07 +0200 store: fix _hashencode call in _dothybridencode
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 11:39:07 +0200] rev 17621
store: fix _hashencode call in _dothybridencode Fixes 7840d81a80ec
Wed, 19 Sep 2012 12:29:12 +0200 check-code: catch yield inside try/finally (with tests)
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 19 Sep 2012 12:29:12 +0200] rev 17620
check-code: catch yield inside try/finally (with tests) This is not allowed in Python 2.4.
Tue, 18 Sep 2012 16:30:21 -0700 Merge with mpm
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 16:30:21 -0700] rev 17619
Merge with mpm
Tue, 18 Sep 2012 16:25:20 -0700 store: use native fncache encoding function if available
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 16:25:20 -0700] rev 17618
store: use native fncache encoding function if available This currently falls back to Python for hashed encoding.
Tue, 18 Sep 2012 16:09:02 -0700 tests: run test-hybridencode.py over both Python and C encoders
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 16:09:02 -0700] rev 17617
tests: run test-hybridencode.py over both Python and C encoders This ensures that the two always give the same answers.
Tue, 18 Sep 2012 15:42:19 -0700 store: implement fncache basic path encoding in C
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 15:42:19 -0700] rev 17616
store: implement fncache basic path encoding in C (This is not yet enabled; it will be turned on in a followup patch.) The path encoding performed by fncache is complex and (perhaps surprisingly) slow enough to negatively affect the overall performance of Mercurial. For a short path (< 120 bytes), the Python code can be reduced to a fairly tractable state machine that either determines that nothing needs to be done in a single pass, or performs the encoding in a second pass. For longer paths, we avoid the more complicated hashed encoding scheme for now, and fall back to Python. Raw performance: I measured in a repo containing 150,000 files in its tip manifest, with a median path name length of 57 bytes, and 95th percentile of 96 bytes. In this repo, the Python code takes 3.1 seconds to encode all path names, while the hybrid C-and-Python code (called from Python) takes 0.21 seconds, for a speedup of about 14. Across several other large repositories, I've measured the speedup from the C code at between 26x and 40x. For path names above 120 bytes where we must fall back to Python for hashed encoding, the speedup is about 1.7x. Thus absolute performance will depend strongly on the characteristics of a particular repository.
Tue, 18 Sep 2012 23:32:42 +0200 rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:32:42 +0200] rev 17615
rebase: ensure rebase does not revive extinct revision Here, we exclude hidden changesets from a rebase operation. If we don't, a rewritten version of the hidden changesets will be created by rebase. Those rewritten versions won't be hidden and will likely conflict with other rewriting or revive pruned changeset. Moreover, rewriting hidden revisions will surprise the user. This change would not be necessary if changelog filtering were already in core. But it's fairly cheap and helps to increase the test-suite for such filtering. Once changelog level filtering is added, hidden changes will be automatically excluded or included according to the global --hidden flags. Plain ignoring them is good enough for now.
Tue, 18 Sep 2012 23:29:05 +0200 rebase: remove useless list around repo.revs
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:29:05 +0200] rev 17614
rebase: remove useless list around repo.revs As repo.revs already returns a list.
Tue, 18 Sep 2012 23:42:27 +0200 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:42:27 +0200] rev 17613
rebase: properly handle --collapse when creating obsolescence marker In collapse mode, that content of state is not suitable to compute obsolescence markers. We explicitly pass the resulting revision instead and use it as the successors for all elements of the rebased set.
Tue, 18 Sep 2012 23:13:31 +0200 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:13:31 +0200] rev 17612
rebase: allow creation obsolescence relation instead of stripping When obsolescence feature is enabled we now create markers from the rebased set to the resulting set instead of stripping. The "state" mapping built by rebase holds all necessary data. Changesets "deleted" by the rebase are marked "succeeded" by the changeset they would be rebased one. That the best guess of "successors" we have. Getting a successors as meaningful as possible is important for automatic resolution of obsolescence troubles. In other word, emptied changeset will looks collapsed with their former parents. (see "empty changeset" section of the test if you are still confused)
Tue, 18 Sep 2012 22:58:12 +0200 rebase: extract final changesets cleanup logic in a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 18 Sep 2012 22:58:12 +0200] rev 17611
rebase: extract final changesets cleanup logic in a dedicated function At the end of the rebase, rebased changesets are currently stripped. This behavior will be eventually dropped in favor of obsolescence marker creation. The main rebase function is already big and branchy enough. This changeset move the clean-up logic in a dedicated function before we make it more complex.
Tue, 18 Sep 2012 14:37:32 -0700 store: refactor hashed encoding into its own function
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 14:37:32 -0700] rev 17610
store: refactor hashed encoding into its own function
Tue, 18 Sep 2012 19:51:59 +0200 store: reuse direncoded path in _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 19:51:59 +0200] rev 17609
store: reuse direncoded path in _hybridencode For a netbeans clone on Windows 7 x64: Before: $ hg perffncacheencode ! wall 3.516000 comb 3.525623 user 3.525623 sys 0.000000 (best of 3) After: $ hg perffncacheencode ! wall 3.443000 comb 3.447622 user 3.447622 sys 0.000000 (best of 3)
Tue, 18 Sep 2012 19:51:48 +0200 store: extract functions _encodefname and _decodefname
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 19:51:48 +0200] rev 17608
store: extract functions _encodefname and _decodefname
Tue, 18 Sep 2012 11:44:16 +0200 store: use fast C implementation of encodedir() if it's available
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 11:44:16 +0200] rev 17607
store: use fast C implementation of encodedir() if it's available For a netbeans clone on Windows 7 x64: Encoding all paths in the fncache: Before: $ hg perffncacheencode ! wall 3.639000 comb 3.634823 user 3.634823 sys 0.000000 (best of 3) After: $ hg perffncacheencode ! wall 3.470000 comb 3.463222 user 3.463222 sys 0.000000 (best of 3) Writing fncache: Before: $ hg perffncachewrite ! wall 0.103000 comb 0.093601 user 0.093601 sys 0.000000 (best of 95) After: $ hg perffncachewrite ! wall 0.081000 comb 0.078001 user 0.062400 sys 0.015600 (best of 100)
Tue, 18 Sep 2012 11:43:30 +0200 pathencode: new C module with fast encodedir() function
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 11:43:30 +0200] rev 17606
pathencode: new C module with fast encodedir() function Not yet used (will be enabled in a later patch). This patch is a stripped down version of patches originally created by Bryan O'Sullivan <bryano@fb.com>
Tue, 18 Sep 2012 07:58:50 +0200 store: add multiline doctest case for encodedir()
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 07:58:50 +0200] rev 17605
store: add multiline doctest case for encodedir() a followup to 64c6a0d4d4bd
Mon, 17 Sep 2012 11:00:38 +0200 store: optimize fncache._load a bit by dirdecoding the contents in one go
Adrian Buehlmann <adrian@cadifra.com> [Mon, 17 Sep 2012 11:00:38 +0200] rev 17604
store: optimize fncache._load a bit by dirdecoding the contents in one go For a netbeans clone on Windows 7 x64: Before: $ hg perffncacheload ! wall 0.124000 comb 0.124801 user 0.124801 sys 0.000000 (best of 76) After: $ hg perffncacheload ! wall 0.096000 comb 0.093601 user 0.078001 sys 0.015600 (best of 97)
Tue, 18 Sep 2012 17:00:58 +0200 wireproto: workaround for yield inside try/finally incompatible with python2.4
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 17:00:58 +0200] rev 17603
wireproto: workaround for yield inside try/finally incompatible with python2.4
Tue, 18 Sep 2012 16:19:56 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 18 Sep 2012 16:19:56 -0500] rev 17602
merge with stable
Sun, 09 Sep 2012 12:43:24 -0400 largefiles: delegate to the wrapped clone command stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 12:43:24 -0400] rev 17601
largefiles: delegate to the wrapped clone command This allows the wrapped command's validation code to run (which is currently only to ensure 'noupdate' and 'updaterev' aren't both specified), the copy/pasted unpacking of hg.clone() args to be removed, and any future changes to the base command (however unlikely) to be inherited by largefiles. Unfortunately, the command override can't be swapped entirely for an hg.clone() override because the extra --all-largefiles arg needs to be injected. It also isn't enough to call the wrapped clone command and leave the caching code after it, because the file caching code needs access to the destination repo, which is only available from hg.clone(). An alternative would be to use the dest path in the clone command override to re-obtain a reference to the repo. A slight deviation from the regular hg.clone() function is that the repo is NOT deleted if the caching fails, but that was also the previous behavior. Maybe it should for consistency?
Sun, 09 Sep 2012 12:09:53 -0400 largefiles: don't convert dest=None to dest=hg.defaultdest() in clone command stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 12:09:53 -0400] rev 17600
largefiles: don't convert dest=None to dest=hg.defaultdest() in clone command A status message is output if hg.clone() determines the default destination because None was provided. The previous code never passed None to hg.clone().
Sun, 09 Sep 2012 03:37:38 -0400 largefiles: restore caching of largefiles with 'clone -U --all-largefiles' stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 03:37:38 -0400] rev 17599
largefiles: restore caching of largefiles with 'clone -U --all-largefiles' This was broken when restoring normal -u and -U functionality.
Sat, 08 Sep 2012 13:31:06 -0400 largefiles: restore normal 'clone -u' and 'clone -U' functionality stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 08 Sep 2012 13:31:06 -0400] rev 17598
largefiles: restore normal 'clone -u' and 'clone -U' functionality Previously, tip would be checked out regardless of the -u or -U parameter. I'm not sure what the 'required for successful walkchangerevs' comment meant, but it appears to reference code which has since moved to downloadlfiles() in 7d6a660ca151. Perhaps it was to force caching when the -U parameter is given? The price of this change is that -U --all-largefiles won't cache anything. That will be fixed next. Note that X + Y in the 'X largefiles updated, n removed' and 'Y additional largefiles cached' lines do not add up to the same values in these tests, but all of the largefiles have been downloaded. The reason being that several largefiles have the same content (eb7338044 is pointed to by sub/large2, large3 and sub/large4). In the 'clone -u 1' operation, this largefile is cached to populate the working directory, even without --all-largefiles. That means the file isn't downloaded again and cached in the rev where large3 and sub/large4 both point to this file. Downloading that one file in that one rev seems to be counted twice with 'clone -u 0'. (Maybe it is also being downloaded twice?)
Sat, 15 Sep 2012 22:50:34 -0400 formatter: add base implementation of data method
David M. Carr <david@carrclan.us> [Sat, 15 Sep 2012 22:50:34 -0400] rev 17597
formatter: add base implementation of data method Previously, nothing was done with the passed in values, which clearly wasn't the intention.
Tue, 18 Sep 2012 15:36:58 +0200 merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 15:36:58 +0200] rev 17596
merge with stable
Tue, 18 Sep 2012 15:30:22 +0200 merge with main
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 15:30:22 +0200] rev 17595
merge with main
Tue, 18 Sep 2012 15:29:43 +0200 largefiles: fix trailing spaces in test-largefiles.t stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 15:29:43 +0200] rev 17594
largefiles: fix trailing spaces in test-largefiles.t With the default branch this will cause warnings from check-code.
Sun, 16 Sep 2012 22:43:24 +0200 test-hybridencode: add a case for direncode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 22:43:24 +0200] rev 17593
test-hybridencode: add a case for direncode
Mon, 17 Sep 2012 08:58:35 +0200 store: optimize fncache._write by direncoding the contents in one go
Adrian Buehlmann <adrian@cadifra.com> [Mon, 17 Sep 2012 08:58:35 +0200] rev 17592
store: optimize fncache._write by direncoding the contents in one go For a netbeans clone on Windows 7 x64: Before: $ hg perffncachewrite ! wall 0.210000 comb 0.218401 user 0.202801 sys 0.015600 (best of 47) After: $ hg perffncachewrite ! wall 0.104000 comb 0.109201 user 0.078000 sys 0.031200 (best of 95)
Sun, 16 Sep 2012 11:41:02 +0200 store: move encode lambda logic into fncachestore
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:41:02 +0200] rev 17591
store: move encode lambda logic into fncachestore and define two named functions at module scope. This again also speeds up perffncacheencode a little bit.
Sun, 16 Sep 2012 11:36:14 +0200 store: eliminate one level of lambda functions on _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:36:14 +0200] rev 17590
store: eliminate one level of lambda functions on _hybridencode
Sun, 16 Sep 2012 11:36:06 +0200 store: parameter path of _auxencode is now a list of strings
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:36:06 +0200] rev 17589
store: parameter path of _auxencode is now a list of strings
Sun, 16 Sep 2012 11:36:00 +0200 store: keep an accumulated length for the shorted dirs in _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:36:00 +0200] rev 17588
store: keep an accumulated length for the shorted dirs in _hybridencode so we don't have to repeatedly do '/'.join(sdirs) inside the loop
Sun, 16 Sep 2012 11:35:55 +0200 store: reorder basename assignment in _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:35:55 +0200] rev 17587
store: reorder basename assignment in _hybridencode
Sat, 15 Sep 2012 21:44:08 +0200 store: remove uneeded startswith('data/') checks in encodedir() and decodedir()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:44:08 +0200] rev 17586
store: remove uneeded startswith('data/') checks in encodedir() and decodedir() I don't think we will ever have anything in the store that resides inside a directory that ends in .i or .d under store/ that we wouldn't want to have direncoded. The files not under data/ surely don't need direncoding, but it doesn't harm to let these few run through it. It hurts more to check whether the thousands of other files start with 'data/'. They do anyway. See also 810387f59696 (fixed with c31fe74a6633), which moved the direncoding from filelog into store
Sat, 15 Sep 2012 21:43:56 +0200 store: remove uneeded startswith('data/') check in _hybridencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:43:56 +0200] rev 17585
store: remove uneeded startswith('data/') check in _hybridencode()
Sat, 15 Sep 2012 21:43:14 +0200 store: refactor splitting off of "data/" in _hybridencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:43:14 +0200] rev 17584
store: refactor splitting off of "data/" in _hybridencode() encodefilename() already calls encodedir(). Note that encodedir() skips the encoding if the path doesn't start with "data/".
Mon, 17 Sep 2012 15:13:17 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 17 Sep 2012 15:13:17 -0500] rev 17583
merge with stable
Mon, 17 Sep 2012 15:13:03 -0500 merge with crew stable
Matt Mackall <mpm@selenic.com> [Mon, 17 Sep 2012 15:13:03 -0500] rev 17582
merge with crew
Mon, 17 Sep 2012 21:53:50 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Mon, 17 Sep 2012 21:53:50 +0200] rev 17581
Merge with stable
Mon, 17 Sep 2012 21:33:16 +0200 hgweb: fix incorrect graph padding calculation (issue3626) stable
Tim Delaney <timothy.c.delaney@gmail.com> [Mon, 17 Sep 2012 21:33:16 +0200] rev 17580
hgweb: fix incorrect graph padding calculation (issue3626) hgweb has an incorrect padding calculation, causing the text to move further away from the graph the more branches there are (issue3626). This patch fixes all existing templates (gitweb, monoblue, paper and spartan). Tests updated by Patrick Mezard <patrick@mezard.eu>
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 +30000 tip