Tue, 10 May 2016 22:52:26 +0000 tests: use debuginstall to retrieve hg version
timeless <timeless@mozdev.org> [Tue, 10 May 2016 22:52:26 +0000] rev 29198
tests: use debuginstall to retrieve hg version
Tue, 10 May 2016 22:45:45 +0000 debuginstall: add mercurial version
timeless <timeless@mozdev.org> [Tue, 10 May 2016 22:45:45 +0000] rev 29197
debuginstall: add mercurial version
Thu, 12 May 2016 06:13:59 -0700 strip: invalidate phase cache after stripping changeset (issue5235) stable
Laurent Charignon <lcharignon@fb.com> [Thu, 12 May 2016 06:13:59 -0700] rev 29196
strip: invalidate phase cache after stripping changeset (issue5235) When we remove a changeset from the changelog, the phase cache must be invalidated, otherwise it could refer to changesets that are no longer in the repo. To reproduce the failure, I created an extension querying the phase cache after the strip transaction is over. To do that, I stripped two commits with a bookmark on one of them to force another transaction (we open a transaction for moving bookmarks) after the strip transaction. Without the fix in this patch, the test leads to a stacktrace showing the issue: repair.strip(ui, repo, revs, backup) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/repair.py", line 205, in strip tr.close() File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/transaction.py", line 44, in _active return func(self, *args, **kwds) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/transaction.py", line 490, in close self._postclosecallback[cat](self) File "$TESTTMP/crashstrip2.py", line 4, in test [repo.changelog.node(r) for r in repo.revs("not public()")] File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/changelog.py", line 337, in node return super(changelog, self).node(rev) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/revlog.py", line 377, in node return self.index[rev][7] IndexError: revlog index out of range The situation was encountered in inhibit (evolve's repo) where we would crash following the volatile set invalidation submitted by Augie in e6f490e328635312ee214a12bc7fd3c7d46bf9ce. Before his patch the issue was masked as we were not accessing the phasecache after stripping a revision. This bug uncovered another but in histedit (see explanation in issue5235). I changed the histedit test accordingly to avoid fixing two things at once.
Mon, 16 May 2016 04:31:20 +0530 py3: make tests/svn-safe-append.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 16 May 2016 04:31:20 +0530] rev 29195
py3: make tests/svn-safe-append.py use absolute_import
Mon, 16 May 2016 04:28:22 +0530 py3: make tests/test-atomictempfile.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 16 May 2016 04:28:22 +0530] rev 29194
py3: make tests/test-atomictempfile.py use absolute_import
Mon, 16 May 2016 04:08:17 +0530 py3: tests/test-check-py3-compat.t output updated
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 16 May 2016 04:08:17 +0530] rev 29193
py3: tests/test-check-py3-compat.t output updated The lower part of the tests runs with Python 3.5 so its remains unchanged with new commits.
Tue, 17 May 2016 05:32:36 +0530 py3: use setattr() to assign new class attribute
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 17 May 2016 05:32:36 +0530] rev 29192
py3: use setattr() to assign new class attribute The old method produces error 'object does not supports item assignment'. So setattr() is used to assign a new class attribute via __dict__ .
Wed, 11 May 2016 14:18:52 -0700 localrepo: use dirstate savebackup instead of handling dirstate file manually
Mateusz Kwapich <mitrandir@fb.com> [Wed, 11 May 2016 14:18:52 -0700] rev 29191
localrepo: use dirstate savebackup instead of handling dirstate file manually This is one step towards having dirstate manage its own storage. It will be useful for the implementation of sql dirstate [1]. This introduced a small test change: now we always write the dirstate before saving backup so in some cases where dirstate file didn't exist yet savebackup can create it. [1] https://www.mercurial-scm.org/wiki/SQLDirstatePlan
Fri, 13 May 2016 13:30:08 -0700 localrepo: use dirstate restorebackup instead of copying dirstate manually
Mateusz Kwapich <mitrandir@fb.com> [Fri, 13 May 2016 13:30:08 -0700] rev 29190
localrepo: use dirstate restorebackup instead of copying dirstate manually This is one step towards having dirstate manage its own storage. It will be useful for the implementation of sqldirstate [1]. I'm deleting two of the dirstate.invalidate() calls in localrepo because restorebackup method does that for us. [1] https://www.mercurial-scm.org/wiki/SQLDirstatePlan
Fri, 13 May 2016 13:28:09 -0700 dirstate: add prefix and suffix arguments to backup
Mateusz Kwapich <mitrandir@fb.com> [Fri, 13 May 2016 13:28:09 -0700] rev 29189
dirstate: add prefix and suffix arguments to backup This would allow the code explicitly copying dirstate to use this method instead. Use of this method will increase encapsulation (the dirstate class will be sole owner of its on-disk storage).
Wed, 20 Apr 2016 19:55:59 +0000 tests: mark test-atomictempfile.py write as binary
timeless <timeless@mozdev.org> [Wed, 20 Apr 2016 19:55:59 +0000] rev 29188
tests: mark test-atomictempfile.py write as binary
Wed, 20 Apr 2016 19:53:01 +0000 tests: mark test-context.py write as binary
timeless <timeless@mozdev.org> [Wed, 20 Apr 2016 19:53:01 +0000] rev 29187
tests: mark test-context.py write as binary
Thu, 05 May 2016 16:20:53 +0200 transaction: turn lack of locking into a hard failure (API)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 16:20:53 +0200] rev 29186
transaction: turn lack of locking into a hard failure (API) We have been warning about transactions without locks for about a year (and three releases), third party extensions had a fair grace period to fix their code, we are moving lack of locking to a hard failure in order to protect users against repository corruption.
Thu, 05 May 2016 16:13:22 +0200 test: extract develwarn transaction testing in its own command
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 16:13:22 +0200] rev 29185
test: extract develwarn transaction testing in its own command The lack of locking for a transation is about to change from a warning to an error. We first extract the test decidated to this warning to make the next changeset clearer.
Mon, 16 May 2016 16:41:26 +0100 graphmod: update edgemap in-place
Martijn Pieters <mjpieters@fb.com> [Mon, 16 May 2016 16:41:26 +0100] rev 29184
graphmod: update edgemap in-place The edgemap update was not actually propagated to future asciiedge calls; update the edge state dictionary in-place instead.
Fri, 06 May 2016 19:24:25 +0000 tests: test-archive.t use mercurial.util for urllib compat
timeless <timeless@mozdev.org> [Fri, 06 May 2016 19:24:25 +0000] rev 29183
tests: test-archive.t use mercurial.util for urllib compat
Fri, 06 May 2016 19:19:12 +0000 tests: test-archive.t use sys.stdout.buffer for binary output in py3
timeless <timeless@mozdev.org> [Fri, 06 May 2016 19:19:12 +0000] rev 29182
tests: test-archive.t use sys.stdout.buffer for binary output in py3
Thu, 19 May 2016 14:35:22 -0700 localrepo: prevent executable-bit only changes from being lost on amend stable
Mateusz Kwapich <mitrandir@fb.com> [Thu, 19 May 2016 14:35:22 -0700] rev 29181
localrepo: prevent executable-bit only changes from being lost on amend If you have just executable-bit change and amend it twice it will vanish: * After the first amend the commit will have the proper executable bit set in manifest but it won't have the the file on the list of files in changelog. * The second amend will read the wrong list of files from changelog and it will copy the manifest entry from parent for this file. * Voila! The change is lost. This change repairs the bug in localrepo causing this and adds a test for it.
Sat, 21 May 2016 02:48:51 +0900 tests: escape bytes setting MSB in input of grep for portability stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 May 2016 02:48:51 +0900] rev 29180
tests: escape bytes setting MSB in input of grep for portability GNU grep (2.21-2 or later) assumes that input is encoded in LC_CTYPE, and input is binary if it contains byte sequence not valid for that encoding. For example, if locale is configured as C, a byte setting most significant bit (MSB) makes such GNU grep show "Binary file <FILENAME> matches" message instead of matched lines unintentionally. This behavior is recognized as a bug, and fixed in GNU grep 2.25-1 or later. But some distributions are shipped with such buggy version (e.g. Ubuntu xenial, which is used by launchpad buildbot). http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19230 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=800670 http://packages.ubuntu.com/xenial/grep This causes failure of test-commit-interactive.t, which applies grep on CP932 byte sequence since 1111e84de635. But, explicit setting LC_CTYPE for CP932 might cause another problem, because it can't be assumed that all environment running Mercurial tests allows arbitrary locale setting. To resolve this issue, this patch escapes bytes setting MSB in input of grep. For this purpose: - str.encode('string-escape') isn't useful, because it escapes also control code (less than 0x20), and makes EOL handling complicated - "f --hexdump" isn't useful, because it isn't line-oriented - "sed -n" seems reasonable, but "sed" itself sometimes causes portability issue, too (e.g. 900767dfa80d or afb86ee925bf) This patch is posted with "stable" flag, because 1111e84de635 is on stable branch.
Fri, 06 May 2016 19:17:49 +0000 tests: test-archive.t use absolute_import
timeless <timeless@mozdev.org> [Fri, 06 May 2016 19:17:49 +0000] rev 29179
tests: test-archive.t use absolute_import This is a step to adding a mercurial dependency to simplify py3 compat
Fri, 06 May 2016 19:16:16 +0000 tests: test-archive.t use open() instead of file() for py3 compat
timeless <timeless@mozdev.org> [Fri, 06 May 2016 19:16:16 +0000] rev 29178
tests: test-archive.t use open() instead of file() for py3 compat
Fri, 06 May 2016 19:15:37 +0000 tests: test-archive.t use print_function
timeless <timeless@mozdev.org> [Fri, 06 May 2016 19:15:37 +0000] rev 29177
tests: test-archive.t use print_function
Tue, 17 May 2016 11:28:46 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 17 May 2016 11:28:46 -0500] rev 29176
merge with stable
Wed, 11 May 2016 01:56:59 +0000 readlink: use print_function
timeless <timeless@mozdev.org> [Wed, 11 May 2016 01:56:59 +0000] rev 29175
readlink: use print_function
Fri, 06 May 2016 01:15:07 +0000 tests: test-addremove-similar.t use print() for py3
timeless <timeless@mozdev.org> [Fri, 06 May 2016 01:15:07 +0000] rev 29174
tests: test-addremove-similar.t use print() for py3
Fri, 06 May 2016 00:45:31 +0000 tests: add coverage for run-tests.py --whitelist
timeless <timeless@mozdev.org> [Fri, 06 May 2016 00:45:31 +0000] rev 29173
tests: add coverage for run-tests.py --whitelist
Tue, 05 Apr 2016 01:35:36 +0000 hg: limit HGUNICODEPEDANTRY to py2
timeless <timeless@mozdev.org> [Tue, 05 Apr 2016 01:35:36 +0000] rev 29172
hg: limit HGUNICODEPEDANTRY to py2 reload is not available in py3, and py3 is fatal anyway
Fri, 13 May 2016 02:58:15 +0530 py3: make i18n/hggettext use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 02:58:15 +0530] rev 29171
py3: make i18n/hggettext use print_function
Fri, 13 May 2016 02:56:13 +0530 py3: make i18n/hggettext use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 02:56:13 +0530] rev 29170
py3: make i18n/hggettext use absolute_import
Fri, 13 May 2016 02:41:35 +0530 py3: make doc/docchecker use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 02:41:35 +0530] rev 29169
py3: make doc/docchecker use print_function
Fri, 13 May 2016 02:40:39 +0530 py3: make doc/docchecker use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 02:40:39 +0530] rev 29168
py3: make doc/docchecker use absolute_import
Fri, 13 May 2016 02:23:45 +0530 py3: make contrib/undumprevlog use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 02:23:45 +0530] rev 29167
py3: make contrib/undumprevlog use absolute_import
Fri, 13 May 2016 02:16:32 +0530 py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 02:16:32 +0530] rev 29166
py3: make contrib/dumprevlog use print_function
Fri, 13 May 2016 02:14:49 +0530 py3: make contrib/dumprevlog use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 02:14:49 +0530] rev 29165
py3: make contrib/dumprevlog use absolute_import
Fri, 13 May 2016 02:13:14 +0530 py3: make contrib/check-commit use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 02:13:14 +0530] rev 29164
py3: make contrib/check-commit use print_function
Fri, 13 May 2016 02:11:57 +0530 py3: make contrib/check-commit use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 02:11:57 +0530] rev 29163
py3: make contrib/check-commit use absolute_import
Thu, 12 May 2016 01:03:19 +0100 hgcia: remove hgcia (BC)
Jun Wu <quark@fb.com> [Thu, 12 May 2016 01:03:19 +0100] rev 29162
hgcia: remove hgcia (BC) As discussed at: https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-March/081018.html, cia service is down for years. It also uses socket.setdefaulttimeout() which will break chg. This patch removes the extension.
Fri, 13 May 2016 03:31:07 +0530 py3: make tests/hghave use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:31:07 +0530] rev 29161
py3: make tests/hghave use absolute_import
Fri, 13 May 2016 03:28:44 +0530 py3: make tests/f use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:28:44 +0530] rev 29160
py3: make tests/f use absolute_import
Fri, 13 May 2016 03:26:28 +0530 py3: make tests/dummyssh use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:26:28 +0530] rev 29159
py3: make tests/dummyssh use absolute_import
Fri, 13 May 2016 03:18:04 +0530 py3: make raise statement python3 compatible
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:18:04 +0530] rev 29158
py3: make raise statement python3 compatible In python3 raise error, message has been changed to raise error(message) In additional to that nodes.SkipNode is changed to nodes.SkipNode() so that it creates an instance directly.
Mon, 16 May 2016 17:21:25 -0500 Added signature for changeset aaabed77791a stable
Matt Mackall <mpm@selenic.com> [Mon, 16 May 2016 17:21:25 -0500] rev 29157
Added signature for changeset aaabed77791a
Mon, 16 May 2016 17:21:19 -0500 Added tag 3.8.2 for changeset aaabed77791a stable
Matt Mackall <mpm@selenic.com> [Mon, 16 May 2016 17:21:19 -0500] rev 29156
Added tag 3.8.2 for changeset aaabed77791a
Fri, 13 May 2016 07:19:59 +0900 help: search section of help topic by translated section name correctly stable 3.8.2
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 13 May 2016 07:19:59 +0900] rev 29155
help: search section of help topic by translated section name correctly Before this patch, "hg help topic.section" might show unexpected section of help topic in some encoding. It applies str.lower() instead of encoding.lower(str) on translated message to search section case-insensitively, but some encoding uses 0x41(A) - 0x5a(Z) as the second or later byte of multi-byte character (for example, ja_JP.cp932), and str.lower() causes unexpected result. To search section of help topic by translated section name correctly, this patch replaces str.lower() by encoding.lower(str) for both query string (in commands.help()) and translated help text (in minirst.getsections()).
Fri, 13 May 2016 07:19:59 +0900 patch: show lower-ed translated message correctly stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 13 May 2016 07:19:59 +0900] rev 29154
patch: show lower-ed translated message correctly Before this patch, patch.filterpatch() shows meaningless translation of help message for chunk selection in some encoding. It applies str.lower() instead of encoding.lower(str) on translated message, but some encoding uses 0x41(A) - 0x5a(Z) as the second or later byte of multi-byte character (for example, ja_JP.cp932), and str.lower() causes unexpected result. To show lower-ed translated message correctly, this patch replaces str.lower() by encoding.lower(str).
Fri, 13 May 2016 03:09:30 +0530 py3: make i18n/posplit use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:09:30 +0530] rev 29153
py3: make i18n/posplit use print_function
Fri, 13 May 2016 03:08:46 +0530 py3: make i18n/posplit use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:08:46 +0530] rev 29152
py3: make i18n/posplit use absolute_import
Thu, 12 May 2016 09:39:14 -0400 wireproto: optimize handling of large batch responses
Augie Fackler <augie@google.com> [Thu, 12 May 2016 09:39:14 -0400] rev 29151
wireproto: optimize handling of large batch responses Now that batch can be used by remotefilelog, the quadratic string copying this was doing was actually disastrous. In my local testing, fetching a 56 meg file used to take 3 minutes, and now takes only a few seconds.
Thu, 05 May 2016 19:32:51 +0200 cleanup: replace False identity testing with an explicit token object
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 19:32:51 +0200] rev 29150
cleanup: replace False identity testing with an explicit token object The recommended way to check default value (when None is not as option) is a token object. Identity testing to integer is less explicit and not guaranteed to work in all implementations.
Wed, 11 May 2016 09:31:47 +0200 devel: officially deprecate dirstate.write without transaction argument
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 09:31:47 +0200] rev 29149
devel: officially deprecate dirstate.write without transaction argument When we introduce the develwarning, we did not had an official deprecation API and infrastructure. We can now officially deprecate the old way with a version deadline.
Wed, 11 May 2016 09:31:47 +0200 devel: officially deprecate update without destination
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 09:31:47 +0200] rev 29148
devel: officially deprecate update without destination When we introduce the develwarning, we did not had an official deprecation API and infrastructure. We can now officially deprecate the old way with a version deadline.
Wed, 11 May 2016 09:34:59 +0200 devel: fix a typo in a deprecation warning
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 09:34:59 +0200] rev 29147
devel: fix a typo in a deprecation warning Credit goes to Sean Farley for spotting it.
Wed, 11 May 2016 09:31:47 +0200 devel: officially deprecate old style revset
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 09:31:47 +0200] rev 29146
devel: officially deprecate old style revset When we introduce the develwarning, we did not had an official deprecation API and infrastructure. We can now officially deprecate the old way with a version deadline.
Wed, 11 May 2016 01:46:11 +0000 check-code: handle py3 open divergence
timeless <timeless@mozdev.org> [Wed, 11 May 2016 01:46:11 +0000] rev 29145
check-code: handle py3 open divergence open() really wants an encoding attribute
Wed, 11 May 2016 01:44:39 +0000 check-code: switch to opener
timeless <timeless@mozdev.org> [Wed, 11 May 2016 01:44:39 +0000] rev 29144
check-code: switch to opener
Wed, 11 May 2016 01:39:07 +0000 check-code: handle range/xrange divergence
timeless <timeless@mozdev.org> [Wed, 11 May 2016 01:39:07 +0000] rev 29143
check-code: handle range/xrange divergence
Wed, 11 May 2016 01:56:08 +0000 check-code: fix py3 complaint about \NNN being invalid unicode
timeless <timeless@mozdev.org> [Wed, 11 May 2016 01:56:08 +0000] rev 29142
check-code: fix py3 complaint about \NNN being invalid unicode
Thu, 05 May 2016 09:12:26 +0000 hghave: switch from iteritems to items
timeless <timeless@mozdev.org> [Thu, 05 May 2016 09:12:26 +0000] rev 29141
hghave: switch from iteritems to items With this, test-hghave.t passes on python 3. Four features fail because mercurial still is not py3 safe: absimport cacheable hardlink defaultcacerts But that will be resolved automatically eventually.
Thu, 05 May 2016 09:07:01 +0000 hghave: matchoutput needs to use bytes for regexp
timeless <timeless@mozdev.org> [Thu, 05 May 2016 09:07:01 +0000] rev 29140
hghave: matchoutput needs to use bytes for regexp file output is bytes in py3, so we need each regexp to be bytes
Tue, 03 May 2016 12:36:44 +0900 revset: make dagrange preserve order of input set
Yuya Nishihara <yuya@tcha.org> [Tue, 03 May 2016 12:36:44 +0900] rev 29139
revset: make dagrange preserve order of input set Unlike range, dagrange has no inverted range (such as '10:0'). So there should be no practical reason to keep dagrange as a function that forces its own ordering. No performance regression is spotted in contrib/base-revsets.txt.
Thu, 05 May 2016 09:26:09 +0000 tests: mark test-check-pyflakes.t as requiring hg1.0+
timeless <timeless@mozdev.org> [Thu, 05 May 2016 09:26:09 +0000] rev 29138
tests: mark test-check-pyflakes.t as requiring hg1.0+ hg does not yet run with py3, so if you try: ./run-tests.py --local test-check-pyflakes.t ... it will try to run the local hg, which does not work and thus, hg locate will return no output to stdout (and stderr is sent to /dev/null). If you do: ./run-tests.py --with-hg=~/bin/hg test-check-pyflakes.t Then it should work, if your hg is new enough to have a locate command (hg0.6 does not have locate).
Thu, 05 May 2016 17:06:54 -0700 dirstate: make backup methods public
Mateusz Kwapich <mitrandir@fb.com> [Thu, 05 May 2016 17:06:54 -0700] rev 29137
dirstate: make backup methods public They are called from outside of dirstate anyway and I want the localrepo to use them too.
Fri, 06 May 2016 08:45:56 -0500 check-code: add a rule banning `env -u`
Kevin Bullock <kbullock+mercurial@ringworld.org> [Fri, 06 May 2016 08:45:56 -0500] rev 29136
check-code: add a rule banning `env -u`
Fri, 06 May 2016 08:41:24 -0500 subrepo: use unset instead of env -u to fix test on BSDs (issue5229)
Kevin Bullock <kbullock+mercurial@ringworld.org> [Fri, 06 May 2016 08:41:24 -0500] rev 29135
subrepo: use unset instead of env -u to fix test on BSDs (issue5229)
(0) -10000 -3000 -1000 -300 -100 -64 +64 +100 +300 +1000 +3000 +10000 tip