Fri, 05 Apr 2013 12:20:14 -0500 sslutil: try harder to avoid getpeercert problems
Matt Mackall <mpm@selenic.com> [Fri, 05 Apr 2013 12:20:14 -0500] rev 18879
sslutil: try harder to avoid getpeercert problems We wrap both calls to getpeercert in a try/except to make sure we catch its bogus AttributeError.
Thu, 04 Apr 2013 20:22:29 -0700 copies._forwardcopies: use set operations to find missing files
Siddharth Agarwal <sid0@fb.com> [Thu, 04 Apr 2013 20:22:29 -0700] rev 18878
copies._forwardcopies: use set operations to find missing files This is a performance win for a number of reasons: - We don't iterate over contexts, which avoids a completely unnecessary sorted call + the O(number of files) abstraction cost of doing that. - We don't check membership in a context, which avoids another O(number of files) abstraction cost. - We iterate over the manifests in C instead of Python. For a large repo with 170,000 files, this improves perfpathcopies from 0.34 seconds to 0.07. Anything that uses pathcopies, such as rebase or diff --git between two revisions, benefits.
Thu, 04 Apr 2013 20:36:46 -0700 perf: add a command to test copies.pathcopies perf
Siddharth Agarwal <sid0@fb.com> [Thu, 04 Apr 2013 20:36:46 -0700] rev 18877
perf: add a command to test copies.pathcopies perf An upcoming patch will improve the performance of this function, and this command will be used to demonstrate that improvement.
Thu, 04 Apr 2013 16:37:37 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 04 Apr 2013 16:37:37 -0500] rev 18876
merge with stable
Thu, 04 Apr 2013 16:28:19 -0500 Added signature for changeset 8a7bd2dccd44 stable
Matt Mackall <mpm@selenic.com> [Thu, 04 Apr 2013 16:28:19 -0500] rev 18875
Added signature for changeset 8a7bd2dccd44
Thu, 04 Apr 2013 16:28:15 -0500 Added tag 2.5.4 for changeset 8a7bd2dccd44 stable
Matt Mackall <mpm@selenic.com> [Thu, 04 Apr 2013 16:28:15 -0500] rev 18874
Added tag 2.5.4 for changeset 8a7bd2dccd44
Mon, 18 Mar 2013 16:37:20 -0500 applyupdates: assign variable before we try to use it (issue3855) stable 2.5.4
Kevin Bullock <kbullock@ringworld.org> [Mon, 18 Mar 2013 16:37:20 -0500] rev 18873
applyupdates: assign variable before we try to use it (issue3855) The variable 'fd' was getting used with a value left over from a prior iteration, causing a KeyError: '.hgsubstate'.
Wed, 03 Apr 2013 17:04:38 -0700 merge with mpm
Bryan O'Sullivan <bryano@fb.com> [Wed, 03 Apr 2013 17:04:38 -0700] rev 18872
merge with mpm
Mon, 01 Apr 2013 23:09:36 -0700 perf: add a command to test addremove performance
Siddharth Agarwal <sid0@fb.com> [Mon, 01 Apr 2013 23:09:36 -0700] rev 18871
perf: add a command to test addremove performance Upcoming patches will improve addremove performance. This command will be used to demonstrate that improvement.
Wed, 03 Apr 2013 14:14:30 -0500 merge with crew
Matt Mackall <mpm@selenic.com> [Wed, 03 Apr 2013 14:14:30 -0500] rev 18870
merge with crew
Wed, 03 Apr 2013 11:35:27 -0700 dirstate: only call lstat once per flags invocation
Bryan O'Sullivan <bryano@fb.com> [Wed, 03 Apr 2013 11:35:27 -0700] rev 18869
dirstate: only call lstat once per flags invocation This makes a big difference to performance in some cases. hg --time locate 'set:symlink()' mozilla-central (70,000 files): before: 2.92 sec after: 2.47 another repo (170,000 files): before: 7.87 sec after: 6.86
Wed, 03 Apr 2013 11:35:27 -0700 util: add functions to check symlink/exec bits
Bryan O'Sullivan <bryano@fb.com> [Wed, 03 Apr 2013 11:35:27 -0700] rev 18868
util: add functions to check symlink/exec bits These are not yet used.
Wed, 03 Apr 2013 13:03:50 -0500 Merge with stable.
Augie Fackler <raf@durin42.com> [Wed, 03 Apr 2013 13:03:50 -0500] rev 18867
Merge with stable.
Tue, 02 Apr 2013 16:03:10 +0200 setup.py: properly discard trust warning. stable
Isaac Jurado <diptongo@gmail.com> [Tue, 02 Apr 2013 16:03:10 +0200] rev 18866
setup.py: properly discard trust warning. This modification was missing from the fa91ddfc3f36 changeset.
Tue, 02 Apr 2013 14:50:50 -0700 scmutil.addremove: use iteritems on walk results
Siddharth Agarwal <sid0@fb.com> [Tue, 02 Apr 2013 14:50:50 -0700] rev 18865
scmutil.addremove: use iteritems on walk results Now that we no longer sort all the walk results, using iteritems becomes possible. This is a relatively minor speedup: on a large repository with 170,000 files, perfaddremove goes from 2.13 seconds to 2.10.
Tue, 02 Apr 2013 14:50:31 -0700 scmutil.addremove: stop sorting all walk results
Siddharth Agarwal <sid0@fb.com> [Tue, 02 Apr 2013 14:50:31 -0700] rev 18864
scmutil.addremove: stop sorting all walk results The only place where the order matters is in printing out added or removed files. We already sort that set. On a large repository with 170,000 files, this speeds up perfaddremove from 2.34 seconds to 2.13.
Tue, 02 Apr 2013 10:56:24 -0700 scmutil.addremove: pull ui.status printing out of the loop
Siddharth Agarwal <sid0@fb.com> [Tue, 02 Apr 2013 10:56:24 -0700] rev 18863
scmutil.addremove: pull ui.status printing out of the loop This will let us stop sorting all the results in an upcoming patch. This also permits future refactorings where the same code consumes dirstate.walk results but doesn't print anything out. An argument could be made that printing out results as we go along is more responsive UI-wise. However, at this point iterating through walk results is actually faster than sorting them, so once we stop sorting all the results the argument ceases to be valid.
Tue, 02 Apr 2013 14:49:34 -0700 scmutil.addremove: remove redundant directory and symlink checks
Siddharth Agarwal <sid0@fb.com> [Tue, 02 Apr 2013 14:49:34 -0700] rev 18862
scmutil.addremove: remove redundant directory and symlink checks dirstate.walk only does lstats and never returns stat objects for directories. On a large repository with 170,000 files, this speeds perfaddremove up from 2.40 seconds to 2.34.
Tue, 02 Apr 2013 14:46:55 -0700 scmutil.addremove: pull repo.dirstate fetch out of the loop
Siddharth Agarwal <sid0@fb.com> [Tue, 02 Apr 2013 14:46:55 -0700] rev 18861
scmutil.addremove: pull repo.dirstate fetch out of the loop On a large repository with 170,000 files, this speeds up perfaddremove from 2.78 seconds to 2.40.
Mon, 01 Apr 2013 20:38:37 -0700 scmutil: remove dead updatedir code
Siddharth Agarwal <sid0@fb.com> [Mon, 01 Apr 2013 20:38:37 -0700] rev 18860
scmutil: remove dead updatedir code This code has not been used in a long while.
Tue, 02 Apr 2013 08:58:42 -0700 merge with mpm
Bryan O'Sullivan <bryano@fb.com> [Tue, 02 Apr 2013 08:58:42 -0700] rev 18859
merge with mpm
Tue, 02 Apr 2013 01:15:31 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 02 Apr 2013 01:15:31 -0500] rev 18858
merge with stable
Tue, 02 Apr 2013 01:05:31 -0500 Added signature for changeset 50c922c1b514 stable
Matt Mackall <mpm@selenic.com> [Tue, 02 Apr 2013 01:05:31 -0500] rev 18857
Added signature for changeset 50c922c1b514
Tue, 02 Apr 2013 01:05:26 -0500 Added tag 2.5.3 for changeset 50c922c1b514 stable
Matt Mackall <mpm@selenic.com> [Tue, 02 Apr 2013 01:05:26 -0500] rev 18856
Added tag 2.5.3 for changeset 50c922c1b514
Fri, 15 Feb 2013 18:07:14 +0900 hgweb: show correct error message for i18n environment stable 2.5.3
Takumi IINO <trot.thunder@gmail.com> [Fri, 15 Feb 2013 18:07:14 +0900] rev 18855
hgweb: show correct error message for i18n environment If exception is error.LookupError and running in i18n environment, below condition is always true. Because msg is translated and dosen't contain 'manifest'. if util.safehasattr(err, 'name') and 'manifest' not in msg: This patch creates a new exception class and uses it instead of string match.
Mon, 01 Apr 2013 18:48:12 -0300 commands: fix typo in debugobsolete docstring stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 01 Apr 2013 18:48:12 -0300] rev 18854
commands: fix typo in debugobsolete docstring
Thu, 28 Mar 2013 18:27:19 -0700 duplicatecopies: do not mark items not in the dirstate as copies
Siddharth Agarwal <sid0@fb.com> [Thu, 28 Mar 2013 18:27:19 -0700] rev 18853
duplicatecopies: do not mark items not in the dirstate as copies Consider the following repo: 0 -- 1 (renames a to b) \ - 2 If we're rebasing 2 onto 1, then duplicatecopies is called with arguments (2, 1). copies.pathcopies goes backwards from 1 to 0 and returns the pair dst = a, src = b. Of course, since we're working on top of 2, at this point a doesn't exist in the dirstate. Extra entries in the copymap are currently harmless because the copymap is only queried for items in the dirstate map. However, if the dirstate.copy method becomes one of the sources used to determine which files have changed, this will prove problematic. Note that we can't avoid going backwards in general -- consider this repo: 0 -- 1 (renames a to b) \ - 2 (renames a to c) Rebasing 2 onto 1 should produce a rename from b to c.
Thu, 28 Mar 2013 00:14:27 -0700 duplicatecopies: fix arg name and docstring
Siddharth Agarwal <sid0@fb.com> [Thu, 28 Mar 2013 00:14:27 -0700] rev 18852
duplicatecopies: fix arg name and docstring While most callers do indeed use duplicatecopies with a rev and its parent, rebase doesn't.
Fri, 29 Mar 2013 19:54:06 -0700 pull: list bookmarks before pulling changesets (issue3873)
Siddharth Agarwal <sid0@fb.com> [Fri, 29 Mar 2013 19:54:06 -0700] rev 18851
pull: list bookmarks before pulling changesets (issue3873) Consider a bookmark B that exists both locally and remotely. If B is updated remotely, and then a pull is performed where the pull set contains the new location of B, the bookmark is updated locally. However, if remote B is updated in the middle of a pull to a location not in the pull set, the bookmark won't be updated locally at all. To fix this, list bookmarks before pulling in changesets, not after. This still leaves a race open if B gets moved in between listing bookmarks and pulling in changesets, but the race window is much smaller. Fixing the race properly would require a bundle format upgrade. test-hook.t's output changes because we no longer do two listkeys calls during pull, just one. test-pull-http.t's output changes because we now search for bookmarks before searching for changes.
Fri, 29 Mar 2013 19:52:02 -0700 test-hook.t: remove prelistkeys.forbid hook before moving on
Siddharth Agarwal <sid0@fb.com> [Fri, 29 Mar 2013 19:52:02 -0700] rev 18850
test-hook.t: remove prelistkeys.forbid hook before moving on An upcoming patch will change the order of operations and perform a listkeys before a changegroup fetch. This will cause a few tests to print out the wrong error message.
Fri, 29 Mar 2013 18:28:59 -0700 bookmarks.updatefromremote: rename local rb to remotemarks
Siddharth Agarwal <sid0@fb.com> [Fri, 29 Mar 2013 18:28:59 -0700] rev 18849
bookmarks.updatefromremote: rename local rb to remotemarks This local will become a parameter in an upcoming patch, so give it a more descriptive name. The name stays similar to the existing localmarks.
Fri, 29 Mar 2013 19:06:23 -0700 pull: rename local rb to remotebookmarks
Siddharth Agarwal <sid0@fb.com> [Fri, 29 Mar 2013 19:06:23 -0700] rev 18848
pull: rename local rb to remotebookmarks This local will become more important in an upcoming patch, so give it a more descriptive name.
Fri, 29 Mar 2013 16:07:57 -0700 dicthelpers: inline diff and join code
Siddharth Agarwal <sid0@fb.com> [Fri, 29 Mar 2013 16:07:57 -0700] rev 18847
dicthelpers: inline diff and join code mpm suggested this change since it improves performance slightly. Benchmarking hg perfcalculate -r . Before: ! wall 0.141173 comb 0.140000 user 0.140000 sys 0.000000 (best of 66) After: ! wall 0.138619 comb 0.140000 user 0.140000 sys 0.000000 (best of 69)
Fri, 29 Mar 2013 15:23:19 -0700 dicthelpers: add docstrings for diff and join
Siddharth Agarwal <sid0@fb.com> [Fri, 29 Mar 2013 15:23:19 -0700] rev 18846
dicthelpers: add docstrings for diff and join
Mon, 01 Apr 2013 13:46:32 -0700 perf: add perfdirs command
Bryan O'Sullivan <bryano@fb.com> [Mon, 01 Apr 2013 13:46:32 -0700] rev 18845
perf: add perfdirs command This measures the cost of computing the dirstate's dirs structure, which becomes very expensive in a large working directory.
Mon, 01 Apr 2013 15:19:16 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Apr 2013 15:19:16 -0500] rev 18844
merge with stable
Fri, 29 Mar 2013 18:45:07 -0700 zsh_completion: fix trailing carriage return spoiling tag completion stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Fri, 29 Mar 2013 18:45:07 -0700] rev 18843
zsh_completion: fix trailing carriage return spoiling tag completion This was giving the following error: % hg up 2.5-r<Tab> (eval):1: bad substitution % hg up 2.5-r
Fri, 29 Mar 2013 16:48:32 -0700 filesets: add eol predicate
Matt Mackall <mpm@selenic.com> [Fri, 29 Mar 2013 16:48:32 -0700] rev 18842
filesets: add eol predicate
Fri, 29 Mar 2013 15:27:33 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 29 Mar 2013 15:27:33 -0700] rev 18841
merge with stable
Fri, 29 Mar 2013 15:27:11 -0700 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Fri, 29 Mar 2013 15:27:11 -0700] rev 18840
merge with i18n
Fri, 01 Mar 2013 11:54:36 -0300 merge with i18n stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 01 Mar 2013 11:54:36 -0300] rev 18839
merge with i18n
Fri, 01 Mar 2013 03:25:19 +0900 i18n-ja: synchronized with 61c8327ced50 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 01 Mar 2013 03:25:19 +0900] rev 18838
i18n-ja: synchronized with 61c8327ced50
Thu, 28 Mar 2013 18:21:20 -0700 perf: remove mysterious trailing newlines
Bryan O'Sullivan <bryano@fb.com> [Thu, 28 Mar 2013 18:21:20 -0700] rev 18837
perf: remove mysterious trailing newlines
Wed, 27 Mar 2013 09:00:43 -0700 blackbox: fix a few check-code portability errors
Bryan O'Sullivan <bryano@fb.com> [Wed, 27 Mar 2013 09:00:43 -0700] rev 18836
blackbox: fix a few check-code portability errors
Wed, 27 Mar 2013 08:57:45 -0700 check-code: fix a check-code failure in check-code
Bryan O'Sullivan <bryano@fb.com> [Wed, 27 Mar 2013 08:57:45 -0700] rev 18835
check-code: fix a check-code failure in check-code The irony is delicious.
Fri, 01 Mar 2013 00:59:22 +0100 check-code: re-add check for missing glob
Simon Heimberg <simohe@besonet.ch> [Fri, 01 Mar 2013 00:59:22 +0100] rev 18834
check-code: re-add check for missing glob As suggested by mpm reintroducing this test failure on windows is prevented by a code-check. One line in a unix test is ignored. This pattern matches 20 windows glob lines.
Fri, 01 Mar 2013 00:03:51 +0100 tests: append missing glob to filename output and check-code it
Simon Heimberg <simohe@besonet.ch> [Fri, 01 Mar 2013 00:03:51 +0100] rev 18833
tests: append missing glob to filename output and check-code it
Thu, 28 Feb 2013 23:45:51 +0100 check-code: extract windows glob warning message
Simon Heimberg <simohe@besonet.ch> [Thu, 28 Feb 2013 23:45:51 +0100] rev 18832
check-code: extract windows glob warning message it will be used often
Tue, 26 Mar 2013 16:27:51 -0700 blackbox: defer opening a log file until needed (issue3869)
Bryan O'Sullivan <bryano@fb.com> [Tue, 26 Mar 2013 16:27:51 -0700] rev 18831
blackbox: defer opening a log file until needed (issue3869) Previously, we opened the log file when creating a repo object. This was inefficient (not all repo creation is going to result in a need to log something), but more importantly it broke subrepo updates when used on NFS. * perform an update in the master repo that triggers a subrepo clone * empty subrepo already exists, and has an open, empty blackbox.log file due to it being opened eagerly/prematurely * hg decides to blow away the skeletal subrepo (see use of shutil.rmtree in subrepo._get) * we crash, due to NFS treating a delete of an open file as really a rename to a hidden ".nfs" file Now that we open the blackbox log file on demand, no file exists at the time the empty subrepo is deleted, so the above problem does not occur.
Fri, 22 Mar 2013 17:27:06 -0500 patch: match 'diff --git a/' instead of 'diff --git'
Sean Farley <sean.michael.farley@gmail.com> [Fri, 22 Mar 2013 17:27:06 -0500] rev 18830
patch: match 'diff --git a/' instead of 'diff --git' This reduces the likelihood of a traceback when trying to email a patch that happens to have 'diff --git' at the beginning of a line in the description, as this patch did: http://markmail.org/message/wxpgowxd7ucxygwe
Thu, 21 Mar 2013 18:16:49 +0100 color: drop unnecessary global statement
Simon Heimberg <simohe@besonet.ch> [Thu, 21 Mar 2013 18:16:49 +0100] rev 18829
color: drop unnecessary global statement
Thu, 21 Mar 2013 18:16:49 +0100 serve: pass on the repo instad of recreating it in hgweb
Simon Heimberg <simohe@besonet.ch> [Thu, 21 Mar 2013 18:16:49 +0100] rev 18828
serve: pass on the repo instad of recreating it in hgweb When we pass on the path to the repo, the repo is created in hgweb. But the repo is already here, so pass it on.
Thu, 21 Mar 2013 18:16:48 +0100 serve: pass the prepared baseui to hgweb
Simon Heimberg <simohe@besonet.ch> [Thu, 21 Mar 2013 18:16:48 +0100] rev 18827
serve: pass the prepared baseui to hgweb The baseui was carefully prepared but not used. ui can contain repo specific settings which can have unwanted effects.
Thu, 21 Mar 2013 18:16:48 +0100 hgweb: do not pass on repo.ui when recreating a repo
Simon Heimberg <simohe@besonet.ch> [Thu, 21 Mar 2013 18:16:48 +0100] rev 18826
hgweb: do not pass on repo.ui when recreating a repo Recreate the repo with the global configuration in repo.baseui. The repo configuration is reread anyway. And now deleted repo configuration is reset to the default value.
Wed, 10 Oct 2012 21:55:49 +0200 repo: repo isolation, do not pass on repo.ui for creating new repos
Simon Heimberg <simohe@besonet.ch> [Wed, 10 Oct 2012 21:55:49 +0200] rev 18825
repo: repo isolation, do not pass on repo.ui for creating new repos A repo should not get the configuration from an other repo, so create it with the global configuration in repo.baseui. This is done too when recreating a repo. The repo configuration is reread anyway. And now deleted repo configuration does not persist.
Mon, 04 Mar 2013 22:34:11 +0000 diff: fix binary file removals in git mode.
Johan Bjork <jbjoerk@gmail.com> [Mon, 04 Mar 2013 22:34:11 +0000] rev 18824
diff: fix binary file removals in git mode. With the previous version, a binary file removal diff generated with
Sun, 24 Mar 2013 16:56:25 -0700 manifestmerge: drop redundant flags calls
Siddharth Agarwal <sid0@fb.com> [Sun, 24 Mar 2013 16:56:25 -0700] rev 18823
manifestmerge: drop redundant flags calls
Mon, 25 Mar 2013 17:41:06 -0700 manifestmerge: use dicthelpers.diff and join
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Mar 2013 17:41:06 -0700] rev 18822
manifestmerge: use dicthelpers.diff and join This patch improves manifestmerge performance significantly. In a repository with 170,000 files, the following results were observed on a clean working directory. Revision '.' adds one file. hg perfmergecalculate -r . - before: 0.41 seconds - after: 0.13 seconds hg perfmergecalculate -r .^ - before: 0.53 seconds - after: 0.24 seconds Comparing against '.' is much faster than comparing against '.^' because with '.', the wctx and p2 manifest strings have the same identity, so comparisons are simply pointer equality. With '.^', the strings have different identities so we need to perform memcmps. Any operation that uses manifestmerge benefits. - hg update . goes from 2.04 seconds to 1.75 - hg update .^ goes from 2.52 seconds to 2.25 - hg rebase -r . -d .~6 (involves 4 merges) goes from 11.8 seconds to 10.8
Sun, 24 Mar 2013 17:17:38 -0700 manifestdict: add a method to diff _flags
Siddharth Agarwal <sid0@fb.com> [Sun, 24 Mar 2013 17:17:38 -0700] rev 18821
manifestdict: add a method to diff _flags This will be used in an upcoming patch.
Mon, 25 Mar 2013 17:40:39 -0700 mercurial: implement diff and join for dicts
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Mar 2013 17:40:39 -0700] rev 18820
mercurial: implement diff and join for dicts Given two dicts, diff returns a dict containing all the keys that are present in one dict but not the other, or whose values are different between the dicts. The values are pairs of the values from the dicts, with missing values being represented as an optional argument, defaulting to None. Given two dicts, join performs what is known as an outer join in relational database land: it returns a dict containing all the keys across both dicts. The values are pairs as above, except they aren't compared to see if they're the same.
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 +30000 tip