Sun, 14 Apr 2013 19:05:19 -0500 histedit: update tests for new intervention framework
Matt Mackall <mpm@selenic.com> [Sun, 14 Apr 2013 19:05:19 -0500] rev 18942
histedit: update tests for new intervention framework
Fri, 08 Mar 2013 21:50:27 +0100 test-subrepo: add tests for subrepo "storeclean" checks
Angel Ezquerra <angel.ezquerra@gmail.com> [Fri, 08 Mar 2013 21:50:27 +0100] rev 18941
test-subrepo: add tests for subrepo "storeclean" checks These tests verify that subrepos are not pushed when their store is clean versus a given target repository.
Sat, 16 Feb 2013 01:21:40 +0100 subrepo: do not push mercurial subrepos whose store is clean
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 01:21:40 +0100] rev 18940
subrepo: do not push mercurial subrepos whose store is clean This patch stops mercurial from pushing unmodified subrepos. An unmodified subrepo is one whose store is "clean" versus a given target subrepo. Note that subrepos may have a clean store versus a target repo but not versus another. This patch handles this scenario by individually keeping track of the state of the store versus all push targets. Tests will be added on the following revision.
Sat, 16 Feb 2013 01:18:53 +0100 subrepo: implement "storeclean" method for mercurial subrepos
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 01:18:53 +0100] rev 18939
subrepo: implement "storeclean" method for mercurial subrepos The mercurial subrepo "storeclean" method works by calculating a "store hash" of the repository state and comparing it to a cached store hash. The store hash is always cached when the repository is cloned from or pushed to a remote repository, but also on pull as long as the repository already had a clean store. If the hashes match the store is "clean" versus the selected repository. Note that this method is currenty unused, but it will be used by a later patch. The store hash is calculated by hashing several key repository files, such as the bookmarks file the phaseroots file and the changelog. Note that the hash comparison is done file by file so that we can exit early if a pair of hashes do not match. Also the hashes are calculated starting with the file that is most likely to be smaller upto the file that is more likely to be larger.
Sat, 16 Feb 2013 11:44:13 +0100 util: add notindexed optional parameter to makedirs function
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 11:44:13 +0100] rev 18938
util: add notindexed optional parameter to makedirs function
Sat, 16 Feb 2013 01:11:20 +0100 subrepo: introduce storeclean method
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 01:11:20 +0100] rev 18937
subrepo: introduce storeclean method Currently this method is unused and it is not implemented for any specific subrepo type (it always returns False). It receives a remote repository path because a repository may have a clean store versus a given repository but not versus another.
Sat, 16 Feb 2013 00:07:00 +0100 subrepo: introduce storeclean helper functions
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 00:07:00 +0100] rev 18936
subrepo: introduce storeclean helper functions These helper functions are currently unused but will be used to implement the cleanstore method that will be introduced later.
Fri, 08 Feb 2013 16:17:46 -0600 dispatch: exit with status 1 for an InterventionRequired exception (bc)
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 16:17:46 -0600] rev 18935
dispatch: exit with status 1 for an InterventionRequired exception (bc)
Fri, 08 Feb 2013 16:27:49 -0600 histedit: switch from util.Abort to util.InterventionRequired where appropriate (bc)
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 16:27:49 -0600] rev 18934
histedit: switch from util.Abort to util.InterventionRequired where appropriate (bc)
Fri, 08 Feb 2013 16:27:59 -0600 rebase: switch from util.Abort to util.InterventionRequired where appropriate (bc)
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 16:27:59 -0600] rev 18933
rebase: switch from util.Abort to util.InterventionRequired where appropriate (bc)
Fri, 08 Feb 2013 16:28:24 -0600 dispatch: catch InterventionRequired and print the message with no prefix
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 16:28:24 -0600] rev 18932
dispatch: catch InterventionRequired and print the message with no prefix
Fri, 08 Feb 2013 14:26:03 -0600 error: introduce new InterventionRequired exception
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 14:26:03 -0600] rev 18931
error: introduce new InterventionRequired exception Future changes will use this type instead of util.Abort for signalling the user that intervention is required, as in some rebase and histedit aborts.
Fri, 12 Apr 2013 19:48:07 -0700 util: remove unreachable code
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 19:48:07 -0700] rev 18930
util: remove unreachable code Found by Cython.
Fri, 12 Apr 2013 19:33:48 -0700 util: remove no-op assignment
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 19:33:48 -0700] rev 18929
util: remove no-op assignment Found by Cython.
Fri, 12 Apr 2013 18:49:14 -0700 merge more evolve stuff away (what?)
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 18:49:14 -0700] rev 18928
merge more evolve stuff away (what?)
Fri, 12 Apr 2013 18:48:02 -0700 synthrepo: add missing import of sys
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 18:48:02 -0700] rev 18927
synthrepo: add missing import of sys Found using Cython.
Fri, 12 Apr 2013 18:44:22 -0700 transplant: pass source through to recover
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 18:44:22 -0700] rev 18926
transplant: pass source through to recover
Fri, 12 Apr 2013 17:25:27 -0700 repoview: remove more unreachable code
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:25:27 -0700] rev 18925
repoview: remove more unreachable code Found using Cython.
Fri, 12 Apr 2013 18:35:26 -0700 merge away some failed evolve fat-fingering
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 18:35:26 -0700] rev 18924
merge away some failed evolve fat-fingering
Fri, 12 Apr 2013 17:35:56 -0700 pager: add missing imports of errno and shlex
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:35:56 -0700] rev 18923
pager: add missing imports of errno and shlex Found using Cython.
Fri, 12 Apr 2013 17:33:24 -0700 largefiles: quiet (and document) undefined name errors (issue3886)
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:33:24 -0700] rev 18922
largefiles: quiet (and document) undefined name errors (issue3886) These names were found using Cython; I was completely puzzled until I searched the rest of the tree. It's icky to mess with another module's namespace, but ickier yet to do so without a comment :-)
Fri, 12 Apr 2013 17:27:09 -0700 color: add missing import of error
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:27:09 -0700] rev 18921
color: add missing import of error Found using Cython.
Fri, 12 Apr 2013 17:20:09 -0700 pvec: use the correct name for an identifier
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:20:09 -0700] rev 18920
pvec: use the correct name for an identifier Found using Cython.
Fri, 12 Apr 2013 17:18:52 -0700 repoview: remove unreachable code
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:18:52 -0700] rev 18919
repoview: remove unreachable code Found using Cython.
Fri, 12 Apr 2013 17:20:09 -0700 pvec: use the correct name for an identifier
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:20:09 -0700] rev 18918
pvec: use the correct name for an identifier Found using Cython.
Fri, 12 Apr 2013 17:18:52 -0700 repoview: remove unreachable code
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:18:52 -0700] rev 18917
repoview: remove unreachable code Found using Cython.
Fri, 12 Apr 2013 17:17:35 -0700 mail: add missing import of sys
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:17:35 -0700] rev 18916
mail: add missing import of sys Found using Cython.
Fri, 12 Apr 2013 17:17:05 -0700 statichttprepo: add missing import of os
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:17:05 -0700] rev 18915
statichttprepo: add missing import of os Found using Cython.
Fri, 12 Apr 2013 17:16:37 -0700 worker: add missing import of errno
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:16:37 -0700] rev 18914
worker: add missing import of errno Found using Cython.
Fri, 12 Apr 2013 16:01:18 -0700 histedit: support editing of the first commit (issue3767)
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 16:01:18 -0700] rev 18913
histedit: support editing of the first commit (issue3767)
Fri, 12 Apr 2013 17:00:42 -0400 test-commit-amend.t: fix check-code violation from 3a72c89a83ec
Augie Fackler <raf@durin42.com> [Fri, 12 Apr 2013 17:00:42 -0400] rev 18912
test-commit-amend.t: fix check-code violation from 3a72c89a83ec
Mon, 11 Feb 2013 00:43:12 +0100 util: improve doc for checkcase
Mads Kiilerich <mads@kiilerich.com> [Mon, 11 Feb 2013 00:43:12 +0100] rev 18911
util: improve doc for checkcase
Thu, 11 Apr 2013 14:41:22 +0200 scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com> [Thu, 11 Apr 2013 14:41:22 +0200] rev 18910
scheme: don't crash on invalid URLs
Fri, 08 Feb 2013 21:08:34 +0000 amend: support amending merge changesets (issue3778)
Brodie Rao <brodie@sf.io> [Fri, 08 Feb 2013 21:08:34 +0000] rev 18909
amend: support amending merge changesets (issue3778)
Thu, 11 Apr 2013 13:30:31 -0700 worker: catch all exceptions, try to exit usefully/safely
Bryan O'Sullivan <bryano@fb.com> [Thu, 11 Apr 2013 13:30:31 -0700] rev 18908
worker: catch all exceptions, try to exit usefully/safely
Thu, 11 Apr 2013 13:30:27 -0700 lock: if we fork, ensure that only the parent releases
Bryan O'Sullivan <bryano@fb.com> [Thu, 11 Apr 2013 13:30:27 -0700] rev 18907
lock: if we fork, ensure that only the parent releases This prevents us from having a bunch of errant worker processes all try to release a lock if a problem occurs. (Releasing the lock more than once is harmless; it's invoking the associated callbacks we want to avoid.)
Thu, 11 Apr 2013 14:44:22 +0200 tag: clarify cryptic error message when tagging null revision
Mads Kiilerich <madski@unity3d.com> [Thu, 11 Apr 2013 14:44:22 +0200] rev 18906
tag: clarify cryptic error message when tagging null revision
Fri, 12 Apr 2013 16:55:34 -0400 setup: make error message for missing Python headers more helpful
Mads Kiilerich <mads@kiilerich.com> [Fri, 12 Apr 2013 16:55:34 -0400] rev 18905
setup: make error message for missing Python headers more helpful
Mon, 11 Feb 2013 11:20:12 +0100 obsolete: ensure all markers have a date
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 11 Feb 2013 11:20:12 +0100] rev 18904
obsolete: ensure all markers have a date Obsolescence creates a sparse DAG mostly composed of a lot of small independent chain of markers. Date is the only simple and "reliable" way to sort them. The existence of a date is now enforced at creation time as I'm more and more convinced that date will have a key role in obsolescence markers exchange.
Mon, 08 Apr 2013 16:51:38 +0400 zsh_completion: make use of `debuglabelcomplete` command
Nikolaj Sjujskij <sterkrig@myopera.com> [Mon, 08 Apr 2013 16:51:38 +0400] rev 18903
zsh_completion: make use of `debuglabelcomplete` command Use `debuglabelcomplete` command when populating labels list, instead of calling `hg` three times: for branches, bookmarks and tags. Do not pass string being completed to `hg debuglabelcomplete` (as `$words[$CURRENT]`), since it breaks `_hg_revrange` completion (`--rev 2.5:2.5.<Tab>`) for no apparent benefit. Also complete `hg view` with labels, not just tags, and drop unused `_hg_tags`.
Wed, 10 Apr 2013 15:08:28 -0700 dirs: use mutable strings internally
Bryan O'Sullivan <bryano@fb.com> [Wed, 10 Apr 2013 15:08:28 -0700] rev 18902
dirs: use mutable strings internally perfdirs results for a working dir with 170,000 files: Python 638 msec C 244 C+int 192 C+int+str 168 In the large repo above, the nearly 0.5 second time improvement is visible in commands like "hg add" and "hg update". hg add Python 1100 msec C+int+str 600 hg update (with nothing to do) Python 2800 msec C+int+str 2240
Wed, 10 Apr 2013 15:08:27 -0700 dirs: use mutable integers internally
Bryan O'Sullivan <bryano@fb.com> [Wed, 10 Apr 2013 15:08:27 -0700] rev 18901
dirs: use mutable integers internally These integers are not visible to Python code, so this is safe. perfdirs results for a working dir with 170,000 files: Python 638 msec C 244 C+int 192
Wed, 10 Apr 2013 15:08:27 -0700 scmutil: rewrite dirs in C, use if available
Bryan O'Sullivan <bryano@fb.com> [Wed, 10 Apr 2013 15:08:27 -0700] rev 18900
scmutil: rewrite dirs in C, use if available This is over twice as fast as the Python dirs code. Upcoming changes will nearly double its speed again. perfdirs results for a working dir with 170,000 files: Python 638 msec C 244
Wed, 10 Apr 2013 15:08:26 -0700 scmutil: use new dirs class in dirstate and context
Bryan O'Sullivan <bryano@fb.com> [Wed, 10 Apr 2013 15:08:26 -0700] rev 18899
scmutil: use new dirs class in dirstate and context The multiset-of-directories code was open coded in each of these modules; this change gets rid of the duplication.
Wed, 10 Apr 2013 15:08:26 -0700 scmutil: add a dirs class
Bryan O'Sullivan <bryano@fb.com> [Wed, 10 Apr 2013 15:08:26 -0700] rev 18898
scmutil: add a dirs class This encapsulates the "multiset of directories" structures that are currently open-coded (and duplicated) in both the dirstate and context modules. This will be used, and optionally replaced by a C implementation, in upcoming changes.
Wed, 10 Apr 2013 15:08:25 -0700 scmutil: migrate finddirs from dirstate
Bryan O'Sullivan <bryano@fb.com> [Wed, 10 Apr 2013 15:08:25 -0700] rev 18897
scmutil: migrate finddirs from dirstate
Wed, 10 Apr 2013 15:05:06 -0700 merge
Bryan O'Sullivan <bryano@fb.com> [Wed, 10 Apr 2013 15:05:06 -0700] rev 18896
merge
Wed, 10 Apr 2013 12:34:42 -0700 manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com> [Wed, 10 Apr 2013 12:34:42 -0700] rev 18895
manifestmerge: handle workdir removed, remote removed with flags This can happen when a file with flags is removed or deleted in the working directory and also not present in m2. The obvious solution is to add a __delitem__ override to manifestdict that removes the file from flags if necessary, but that has a significant performance cost in some cases, e.g. hg status --rev rev1 --rev rev2 <file>.
Wed, 10 Apr 2013 12:31:07 -0700 dicthelpers.diff: compare against default for missing values
Siddharth Agarwal <sid0@fb.com> [Wed, 10 Apr 2013 12:31:07 -0700] rev 18894
dicthelpers.diff: compare against default for missing values This is not only a bit faster, but also aligns with callers' expectations better since we can legitimately have manifestdict's _flags set to '' instead of unset. hg perfmergecalculate -r . before: ! wall 0.139582 comb 0.140000 user 0.140000 sys 0.000000 (best of 59) after: ! wall 0.126154 comb 0.120000 user 0.120000 sys 0.000000 (best of 74) hg perfmergecalculate -r .^ before: ! wall 0.236333 comb 0.240000 user 0.240000 sys 0.000000 (best of 36) after: ! wall 0.212265 comb 0.210000 user 0.210000 sys 0.000000 (best of 45)
Tue, 09 Apr 2013 21:38:08 -0700 templater: back out 0615b22da148, it breaks schemes ({1})
Brendan Cully <brendan@kublai.com> [Tue, 09 Apr 2013 21:38:08 -0700] rev 18893
templater: back out 0615b22da148, it breaks schemes ({1})
Tue, 09 Apr 2013 09:40:40 -0700 debuglabelcomplete: compute active branch heads correctly
Bryan O'Sullivan <bryano@fb.com> [Tue, 09 Apr 2013 09:40:40 -0700] rev 18892
debuglabelcomplete: compute active branch heads correctly The previous computation was simply wrong.
Mon, 08 Apr 2013 17:57:42 -0500 merge with i18n
Matt Mackall <mpm@selenic.com> [Mon, 08 Apr 2013 17:57:42 -0500] rev 18891
merge with i18n Note: i18n work should normally be done on stable
Fri, 05 Apr 2013 17:04:37 +0200 hg-i18n-it: minor fixes
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Fri, 05 Apr 2013 17:04:37 +0200] rev 18890
hg-i18n-it: minor fixes
Mon, 08 Apr 2013 15:04:17 -0700 templater: fix check-code error
Bryan O'Sullivan <bryano@fb.com> [Mon, 08 Apr 2013 15:04:17 -0700] rev 18889
templater: fix check-code error
Tue, 26 Mar 2013 02:28:10 +0900 smtp: verify the certificate of the SMTP server for STARTTLS/SMTPS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 26 Mar 2013 02:28:10 +0900] rev 18888
smtp: verify the certificate of the SMTP server for STARTTLS/SMTPS Before this patch, the certificate of the SMTP server for STARTTLS or SMTPS isn't verified. This may cause man-in-the-middle security problem (stealing authentication information), even though SMTP channel itself is encrypted by SSL. When "[smtp] tls" is configured as "smtps" or "starttls", this patch: - uses classes introduced by preceding patches instead of "SMTP" or "SMTP_SSL" of smtplib, and - verifies the certificate of the SMTP server, if "[smtp] verifycert" is configured as other than False "[smtp] verifycert" can be configured in 3 levels: - "strict": This verifies peer certificate, and aborts if: - peer certification is not valid, or - no configuration in "[hostfingerprints]" and "[web] cacerts" This is default value of "[smtp] verifycert" for security. - "loose": This verifies peer certificate, and aborts if peer certification is not valid. This just shows warning message ("certificate not verified"), if there is no configuration in "[hostfingerprints]" and "[web] cacerts". This is as same as verification for HTTPS connection. - False(no verification): Peer certificate is not verified. This is as same as the behavior before this patch series. "hg email --insecure" uses "loose" level, and ignores "[web] cacerts" as same as push/pull/etc... with --insecure. Ignoring "[web] cacerts" configuration for "hg email --insecure" is already done in "dispatch._dispatch()" by looking "insecure" up in the table of command options.
Tue, 26 Mar 2013 02:28:10 +0900 sslutil: abort if peer certificate is not verified for secure use
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 26 Mar 2013 02:28:10 +0900] rev 18887
sslutil: abort if peer certificate is not verified for secure use Before this patch, "sslutil.validator" may returns successfully, even if peer certificate is not verified because there is no information in "[hostfingerprints]" and "[web] cacerts". To prevent from sending authentication credential to untrustable SMTP server, validation should be aborted if peer certificate is not verified. This patch introduces "strict" optional argument, and "sslutil.validator" will abort if it is True and peer certificate is not verified.
Tue, 26 Mar 2013 02:27:43 +0900 smtp: add the class to verify the certificate of the SMTP server for SMTPS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 26 Mar 2013 02:27:43 +0900] rev 18886
smtp: add the class to verify the certificate of the SMTP server for SMTPS Original "smtplib.SMTP_SSL" has no route to pass "ca_certs" and "cert_reqs" arguments to underlying SSL socket creation. This causes that "getpeercert()" on SSL socket returns empty dict, so the peer certificate for SMTPS can't be verified. This patch introduces the "SMTPS" class derived from "smtplib.SMTP" to pass "ca_certs" and "cert_reqs" arguments to underlying SSL socket creation. "SMTPS" class is derived directly from "smtplib.SMTP", because amount of "smtplib.SMTP_SSL" definition derived from "smtplib.SMTP" is as same as one needed to override it. This patch defines "SMTPS" class, only when "smtplib.SMTP" class has "_get_socket()" method, because this makes using SSL socket instead of normal socket easy. "smtplib.SMTP" class of Python 2.5.x or earlier doesn't have this method. Omitting SMTPS support for them is reasonable, because "smtplib.SMTP_SSL" is already unavailable for them before this patch. Almost all code of "SMTPS" class is imported from "smtplib.SMTP_SSL" of Python 2.7.3, but it differs from original code in point below: - "ssl.wrap_socket()" is replaced by "sslutil.ssl_wrap_socket()" for compatibility between Python versions
Tue, 26 Mar 2013 02:27:23 +0900 smtp: add the class to verify the certificate of the SMTP server for STARTTLS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 26 Mar 2013 02:27:23 +0900] rev 18885
smtp: add the class to verify the certificate of the SMTP server for STARTTLS Original "smtplib.SMTP" has no route to pass "ca_certs" and "cert_reqs" arguments to underlying SSL socket creation. This causes that "getpeercert()" on SSL socket returns empty dict, so the peer certificate for STARTTLS can't be verified. This patch introduces the "STARTTLS" class derived from "smtplib.SMTP" to pass "ca_certs" and "cert_reqs" arguments to underlying SSL socket creation. Almost all code of "starttls()" in this class is imported from "smtplib.SMTP" of Python 2.7.3, but it differs from original code in points below: - "self.ehlo_or_helo_if_needed()" invocation is omitted, because: - "ehlo_or_helo_if_needed()" is available with Python 2.6 or later, and - "ehlo()" is explicitly invoked in "mercurial.mail._smtp()" - "if not _have_ssl:" check is omitted, because: - "_have_ssl" is available with Python 2.6 or later, and - same checking is done in "mercurial.sslutil.ssl_wrap_socket()" - "ssl.wrap_socket()" is replaced by "sslutil.ssl_wrap_socket()" for compatibility between Python versions - use "sock.recv()" also as "sock.read()", if "sock" doesn't have "read()" method with Python 2.5.x or earlier, "sslutil.ssl_wrap_socket()" returns "httplib.FakeSocket"-ed object, and it doesn't have "read()" method, which is invoked via "smtplib.SSLFakeFile".
Sun, 07 Apr 2013 23:25:50 -0700 template: allow unquoted int function arguments
Brendan Cully <brendan@kublai.com> [Sun, 07 Apr 2013 23:25:50 -0700] rev 18884
template: allow unquoted int function arguments
Mon, 08 Apr 2013 09:44:26 -0700 Merge with main
Brendan Cully <brendan@kublai.com> [Mon, 08 Apr 2013 09:44:26 -0700] rev 18883
Merge with main
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 +30000 tip