Mon, 25 May 2015 11:06:49 -0700 test-module-imports: drop check for Python >= 2.6
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 25 May 2015 11:06:49 -0700] rev 25269
test-module-imports: drop check for Python >= 2.6 Support for Python 2.4 and 2.5 has been dropped. This check is no longer necessary.
Mon, 25 May 2015 01:26:23 +0900 localrepo: pass hook argument txnid to pretxnopen hooks stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 25 May 2015 01:26:23 +0900] rev 25268
localrepo: pass hook argument txnid to pretxnopen hooks Before this patch, hook argument `txnid` isn't passed to `pretxnopen` hooks, even though `hooks` section of `hg help config` describes so. ``pretxnopen`` Run before any new repository transaction is open. The reason for the transaction will be in ``$HG_TXNNAME`` and a unique identifier for the transaction will be in ``HG_TXNID``. A non-zero status will prevent the transaction from being opened.
Mon, 25 May 2015 01:26:19 +0900 transaction: separate calculating TXNID from creating transaction object stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 25 May 2015 01:26:19 +0900] rev 25267
transaction: separate calculating TXNID from creating transaction object Before this patch, transaction ID (TXNID) is calculated from `transaction` object itself by `id()`, but this prevents TXNID from being passed to `pretxnopen` hooks, which should be executed before starting transaction processing (also any preparations for it, like writing journal files out). As a preparation for passing TXNID to `pretxnopen` hooks, this patch separates calculation of TXNID from creation of `transaction` object. This patch uses "random" library for reasonable unique ID. "uuid" library can't be used, because it was introduced since Python 2.5 and isn't suitable for Mercurial 3.4.x stable line. `%f` formatting for `random.random()` is used with explicit precision number 40, because default precision for `%f` is 6. 40 should be long enough, even if 10**9 transactions are executed in a short time (a second or less). On the other hand, `time.time()` is used to ensures uniqueness of TXNID in a long time, for safety. BTW, platform not providing `/dev/urandom` or so may cause failure of `import random` itself with some Python versions (see Python issue15340 for detail http://bugs.python.org/issue15340). But this patch uses "random" without any workaround, because: - "random" is already used directly in some code paths, - such platforms are very rare (e.g. Tru64 and HPUX), and http://bugs.python.org/issue15340#msg170000 - updating Python runtime can avoid this issue
Sat, 23 May 2015 11:14:00 +0900 revbranchcache: return uncached branchinfo for nullrev (issue4683) stable
Yuya Nishihara <yuya@tcha.org> [Sat, 23 May 2015 11:14:00 +0900] rev 25266
revbranchcache: return uncached branchinfo for nullrev (issue4683) This fixes the crash caused by "branch(null)" revset. No cache should be necessary for nullrev because changelog.branchinfo(nullrev) does not involve IO operation. Note that the problem of "branch(wdir())" isn't addressed by this patch. "wdir()" will raise TypeError in many places because of None. This is the reason why "wdir()" is still experimental.
Sun, 24 May 2015 10:29:33 +0900 revset: drop magic of fullreposet membership test (issue4682) stable
Yuya Nishihara <yuya@tcha.org> [Sun, 24 May 2015 10:29:33 +0900] rev 25265
revset: drop magic of fullreposet membership test (issue4682) This patch partially backs out d2de20e1451f and adds an alternative workaround to functions that evaluate "null" and "wdir()". Because the new workaround is incomplete, "first(null)" and "min(null)" don't work as expected. But they were not usable until 3.4 and "null" isn't commonly used, we can postpone a complete fix for 3.5. The issue4682 was caused because "branch(default)" is evaluated to "<filteredset <fullreposet>>", keeping fullreposet magic. The next patch will fix crash on "branch(null)", but without this patch, it would make "null in <branch(default)>" be True, which means "children(branch(default))" would return all revisions but merge (p2 != null). I believe the right fix is to stop propagating fullreposet magic on filter(), but it wouldn't fit to stable release. Also, we should discuss how to handle "null" and "wdir()" in revset before.
Sat, 23 May 2015 15:55:04 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 23 May 2015 15:55:04 -0500] rev 25264
merge with stable
Fri, 22 May 2015 12:13:18 -0500 transaction: use the proper variable in '_addbackupentry' (issue4684) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 22 May 2015 12:13:18 -0500] rev 25263
transaction: use the proper variable in '_addbackupentry' (issue4684) The 'file' variable was undefined but resolved to the 'file' built-in. This is why pylint complains about overwriting built-ins...
Fri, 22 May 2015 21:19:08 -0400 run-tests: python3.5 now supports mkdtemp using bytes for paths
Augie Fackler <raf@durin42.com> [Fri, 22 May 2015 21:19:08 -0400] rev 25262
run-tests: python3.5 now supports mkdtemp using bytes for paths Now that http://bugs.python.org/issue24230 is fixed (thanks to Gregory Smith for that quick response!) we can drop one more ugly hack around path handling. Tests still pass in 3.5 with this cleaner version, as well as in 2.6.
Fri, 22 May 2015 21:15:52 -0400 run-tests: use items() instead of iteritems()
Augie Fackler <raf@durin42.com> [Fri, 22 May 2015 21:15:52 -0400] rev 25261
run-tests: use items() instead of iteritems() This fixes the python3.5 build. We'll presumably want to build our own helper function or use 2to3 for this on the main source tree, but for run-tests we want a single-source version that works in 2.6 and 3.5.
Thu, 21 May 2015 14:57:30 -0700 selve: make 'shelve --interactive' not experimental
Laurent Charignon <lcharignon@fb.com> [Thu, 21 May 2015 14:57:30 -0700] rev 25260
selve: make 'shelve --interactive' not experimental It is safe to do as 'shelve -i' uses the same code path as 'commit -i' that is not experimental.
Thu, 21 May 2015 14:34:24 -0700 revert: fix edition of newly added file during --interactive
Laurent Charignon <lcharignon@fb.com> [Thu, 21 May 2015 14:34:24 -0700] rev 25259
revert: fix edition of newly added file during --interactive Before this patch: editing hunks of newly added file when performing a revert --interactive had no effect: the edits were discarded. After this patch, the edits are taken into account.
Thu, 21 May 2015 14:25:57 -0700 revert: make revert --interactive use git style diff
Laurent Charignon <lcharignon@fb.com> [Thu, 21 May 2015 14:25:57 -0700] rev 25258
revert: make revert --interactive use git style diff This allows us to use existing code to detect files that are newly added and modified. In turn, this allows us to make revert --interactive support editing newly added and modified files.
Thu, 21 May 2015 14:32:14 -0700 record: extract code to compute newly added and modified files
Laurent Charignon <lcharignon@fb.com> [Thu, 21 May 2015 14:32:14 -0700] rev 25257
record: extract code to compute newly added and modified files We want to reuse this logic in revert.
Thu, 21 May 2015 14:28:02 -0700 record: extract ishunk to a function
Laurent Charignon <lcharignon@fb.com> [Thu, 21 May 2015 14:28:02 -0700] rev 25256
record: extract ishunk to a function We extract this code as we want to reuse it in revert -i.
Sun, 26 Apr 2015 22:26:44 +0900 fileset: pretty print syntax tree in debug output
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 22:26:44 +0900] rev 25255
fileset: pretty print syntax tree in debug output
Wed, 06 May 2015 10:17:41 +0900 parser: extract closure of prettyformat() to a top-level function
Yuya Nishihara <yuya@tcha.org> [Wed, 06 May 2015 10:17:41 +0900] rev 25254
parser: extract closure of prettyformat() to a top-level function There was no capture until I added 'leafnodes' argument.
Sun, 26 Apr 2015 22:20:03 +0900 parser: move prettyformat() function from revset module
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 22:20:03 +0900] rev 25253
parser: move prettyformat() function from revset module I want to use it in doctests that I'll add by future patches. Also, it can be used in "hg debugfileset" command.
Sun, 26 Apr 2015 19:50:42 +0900 fileset: move validation of incomplete parsing to parse() function
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 19:50:42 +0900] rev 25252
fileset: move validation of incomplete parsing to parse() function fileset.parse() should be responsible for all parsing errors as well.
Sun, 26 Apr 2015 19:42:47 +0900 revset: move validation of incomplete parsing to parse() function
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 19:42:47 +0900] rev 25251
revset: move validation of incomplete parsing to parse() function revset.parse() should be responsible for all parsing errors. Perhaps it wasn't because 'revset.parse' was not a real function when the validation code was added at ffcb7e4d719f.
Fri, 22 May 2015 14:39:34 -0700 match: fix bug in match.visitdir()
Drew Gottlieb <drgott@google.com> [Fri, 22 May 2015 14:39:34 -0700] rev 25250
match: fix bug in match.visitdir() There was a bug in my recent change to visitdir (8545bd381504) due to the stored generator being iterated over twice. Making the generator into a list at the start fixes this.
Thu, 21 May 2015 16:20:34 -0400 error: derive RevlogError from HintException instead of Exception
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 21 May 2015 16:20:34 -0400] rev 25249
error: derive RevlogError from HintException instead of Exception This will allow us to now pass hints into this exception.
Thu, 21 May 2015 16:28:06 -0400 error: refactor common hint-pattern into a common base class
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 21 May 2015 16:28:06 -0400] rev 25248
error: refactor common hint-pattern into a common base class I'm about to make another exception class require hints, so third strike and you refactor.
Fri, 22 May 2015 11:50:57 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 22 May 2015 11:50:57 -0500] rev 25247
merge with stable
Fri, 22 May 2015 11:54:43 -0300 i18n-pt_BR: synchronized with 2664f536a97e stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 22 May 2015 11:54:43 -0300] rev 25246
i18n-pt_BR: synchronized with 2664f536a97e
Wed, 20 May 2015 11:29:45 -0500 util: allow to specify buffer size in popen4
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 May 2015 11:29:45 -0500] rev 25245
util: allow to specify buffer size in popen4 We will need unbuffered IO to restore real time output with ssh peer. Changeset ec171737aaf1 seems to indicate playing with this value could be dangerous, but does not indicate why.
Mon, 18 May 2015 23:19:11 -0500 sshpeer: extract the forward output logic
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 18 May 2015 23:19:11 -0500] rev 25244
sshpeer: extract the forward output logic We are about to make a more aggressive use of this when reading and writing on the other pipes. We it needs to be reusable.
Wed, 20 May 2015 12:33:12 -0500 sshpeer: break "OutOfBandError" feature for ssh (BC)
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 May 2015 12:33:12 -0500] rev 25243
sshpeer: break "OutOfBandError" feature for ssh (BC) When we'll be using the ssh's 'stderr' for realtime output successfully, it will no longer be possible to use 'stderr' to carry the error message (because it is already consumed by the real time output logic. This feature is very rarely used (test says largefile only) and I think breaking its output pattern is worth the benefit of having real time output with ssh.
Wed, 20 May 2015 18:17:40 -0500 error: allow a 'hint' to OutOfBandError
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 May 2015 18:17:40 -0500] rev 25242
error: allow a 'hint' to OutOfBandError This will be useful when changing the behavior of OutOfBandError for ssh in the next changeset.
Thu, 21 May 2015 14:30:22 -0500 tests: fix test-clone on vfat
Matt Mackall <mpm@selenic.com> [Thu, 21 May 2015 14:30:22 -0500] rev 25241
tests: fix test-clone on vfat
Thu, 21 May 2015 11:34:40 -0700 wireproto: remove unused 'store' import
Martin von Zweigbergk <martinvonz@google.com> [Thu, 21 May 2015 11:34:40 -0700] rev 25240
wireproto: remove unused 'store' import
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip