Tue, 27 Jan 2015 10:10:04 -0500 dirs: fix leak of iterator in dirs_fromiter stable
Augie Fackler <augie@google.com> [Tue, 27 Jan 2015 10:10:04 -0500] rev 23960
dirs: fix leak of iterator in dirs_fromiter Spotted with cpychecker.
Tue, 27 Jan 2015 10:07:04 -0500 diffhelpers: verify hline was created before using it stable
Augie Fackler <augie@google.com> [Tue, 27 Jan 2015 10:07:04 -0500] rev 23959
diffhelpers: verify hline was created before using it Found with cpychecker.
Sun, 25 Jan 2015 22:55:10 -0500 largefiles: revert to lfilesrepo.status() being an unfiltered method stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 25 Jan 2015 22:55:10 -0500] rev 23958
largefiles: revert to lfilesrepo.status() being an unfiltered method This effectively reverts 67d63ec85eb7, which caused some normal file copies to not be displayed as copies. Other normal file copies could be displayed- the exact reason isn't clear. This also adds two tests that were failing prior to this backout, so that this can be sorted out next cycle. The difference between copy cases that worked and those that didn't seemed to be in copies.pathcopies(). When largefiles isn't enabled for the changed test, or lfstatus is not set in the commands.status() override, 'y.ancestor(x) == x'. That wasn't true otherwise, which fell through to the _chain() method. In this case, the copy is removed in the criss cross loop. 'y.ancestor(x)' returns a context.changectx type, while 'x' is a lfilesctx type in the failing case. I tried adding the ancestor method to the lfilesctx class to change the type of the ancestor context, however the context when printed as a string then gains a '+'. This points to it being a context.committablectx, which clearly isn't correct for an ancestor. Possibly the problem is the lfilesctx needs to subclass context.committablectx in some cases, but context.changectx in others, within the same invocation? I'm not sure how to pull that off, and backing out this change is safer during the freeze. As to the status changing when a path is specified, I haven't looked into it yet.
Sun, 25 Jan 2015 20:13:54 -0600 test-tools: portability tweak stable
Matt Mackall <mpm@selenic.com> [Sun, 25 Jan 2015 20:13:54 -0600] rev 23957
test-tools: portability tweak
Sun, 25 Jan 2015 20:20:27 +0900 revset: fix ancestors(null) to include null revision (issue4512) stable
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Jan 2015 20:20:27 +0900] rev 23956
revset: fix ancestors(null) to include null revision (issue4512) Since 13c0327eeb6f, null parent is explicitly excluded. So, there is no reason to have nullrev in the initial seen set.
Sat, 10 Jan 2015 13:14:00 +0900 log: use rev() to build revset of --follow option from numeric revision stable
Yuya Nishihara <yuya@tcha.org> [Sat, 10 Jan 2015 13:14:00 +0900] rev 23955
log: use rev() to build revset of --follow option from numeric revision startrev can be -1.
Sat, 10 Jan 2015 12:56:38 +0900 revset: allow rev(-1) to indicate null revision (BC) stable
Yuya Nishihara <yuya@tcha.org> [Sat, 10 Jan 2015 12:56:38 +0900] rev 23954
revset: allow rev(-1) to indicate null revision (BC) This can simplify the conversion from numeric revision to string. Without it, we have to handle -1 specially because repo['-1'] != repo[-1]. The -1 revision is not officially documented, but this change makes sense assuming that "rev(%d)" exists for scripting or third-party tools.
Fri, 23 Jan 2015 20:30:49 -0800 extensions: don't quit loading extensions in the middle if traceback is on stable
Siddharth Agarwal <sid0@fb.com> [Fri, 23 Jan 2015 20:30:49 -0800] rev 23953
extensions: don't quit loading extensions in the middle if traceback is on This was introduced way back in 2006 (rev 1f6d520557ec) as sys.exit(0) if loading an extension failed when --traceback was on, then at some point morphed into a 'return 1' in a function that otherwise returns nothing. At this point, if ui.traceback is enabled and if loading an extension fails for whatever reason, including one as innocent as it not being present, we leave any extensions loaded so far in a bogus half-initialized state. That doesn't really make any sense.
Fri, 23 Jan 2015 17:47:04 -0600 test-hgweb: fix shutdown race stable
Matt Mackall <mpm@selenic.com> [Fri, 23 Jan 2015 17:47:04 -0600] rev 23952
test-hgweb: fix shutdown race Logfiles weren't necessarily being flushed before being read.
Thu, 22 Jan 2015 00:08:13 +0900 tests: invoke hg command indirectly from shell script to run on Windows stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 22 Jan 2015 00:08:13 +0900] rev 23951
tests: invoke hg command indirectly from shell script to run on Windows Before this patch, test-tag.t can't run successfully on Windows, because: - quoted hg command ('"hg"') prevents "hg.bat" from working correctly (only at testing with pure Python build) "%~f0" and "%~dp0hg" in "hg.bat" cause unexpected result in this case. BTW, quoted "\path\to\hg" works correctly. - "`pwd`" in the command line is expanded unexpectedly not "C:\path\to\TESTTMP" but "C;C:\path\to\TESTTMP"
Wed, 21 Jan 2015 15:23:13 -0800 log: evaluate filesets on working copy, not its parent stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 21 Jan 2015 15:23:13 -0800] rev 23950
log: evaluate filesets on working copy, not its parent When running "hg log 'set:added()'", we create two matchers: one used for producing the revset and one used for finding files to match. In 1fd352aa08fc (graphlog: evaluate FILE/-I/-X filesets on the working dir, 2012-02-26), we started passing a revision argument along from what's currently in cmdutil._makelogrevset() to revset._matchfiles(). When the revision was an empty string, it referred to the working copy. This was subtly done with "repo[rev or None]". Then, in f2aeff8a87b6 (revset: avoid recalculating filesets, 2014-10-22), that conversion from empty string to None was lost. Note that repo[''] is equivalent to repo['.'], not repo[None]. The consequence of this, to the user, is that when running "hg log 'set:added()'", the file matcher matches files added in the working copy, while the revset matcher matches revisions that touch files added in the parent of the working copy. As a result, only revisions that touch any files added in the parent of the working copy will be considered, but they will only be included if they also touch files added in the working copy. Fix the bug by converting '' to None again, but make it a little more explicit this time (plus, we now have tests for it).
Wed, 21 Jan 2015 15:40:24 -0800 fileset: add tests of generated working copy states stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 21 Jan 2015 15:40:24 -0800] rev 23949
fileset: add tests of generated working copy states
Fri, 23 Jan 2015 15:55:36 -0500 parsers: avoid leaking several PyObjects in index_stats stable
Augie Fackler <augie@google.com> [Fri, 23 Jan 2015 15:55:36 -0500] rev 23948
parsers: avoid leaking several PyObjects in index_stats Found with cpychecker.
Fri, 23 Jan 2015 15:50:40 -0500 parsers: don't leak a reference to raise_revlog_error on success stable
Augie Fackler <augie@google.com> [Fri, 23 Jan 2015 15:50:40 -0500] rev 23947
parsers: don't leak a reference to raise_revlog_error on success Found with cpychecker.
Fri, 23 Jan 2015 15:48:18 -0500 parsers: don't leak a tuple in pack_dirstate stable
Augie Fackler <augie@google.com> [Fri, 23 Jan 2015 15:48:18 -0500] rev 23946
parsers: don't leak a tuple in pack_dirstate Spotted with cpychecker.
Fri, 23 Jan 2015 15:41:46 -0500 parsers.c: fix a memory leak in index_commonancestorsheads stable
Augie Fackler <augie@google.com> [Fri, 23 Jan 2015 15:41:46 -0500] rev 23945
parsers.c: fix a memory leak in index_commonancestorsheads Spotted with cpychecker.
Fri, 23 Jan 2015 15:33:27 -0500 parsers: avoid leaking obj in index_ancestors stable
Augie Fackler <augie@google.com> [Fri, 23 Jan 2015 15:33:27 -0500] rev 23944
parsers: avoid leaking obj in index_ancestors PySequence_GetItem returns a new reference. Found with cpychecker.
Fri, 23 Jan 2015 15:30:21 -0500 parsers: don't leak references to sys et al in check_python_version stable
Augie Fackler <augie@google.com> [Fri, 23 Jan 2015 15:30:21 -0500] rev 23943
parsers: don't leak references to sys et al in check_python_version Found with cpychecker.
Fri, 23 Jan 2015 15:19:04 -0500 parsers: fix leak of err when asciilower hits a unicode decode error stable
Augie Fackler <augie@google.com> [Fri, 23 Jan 2015 15:19:04 -0500] rev 23942
parsers: fix leak of err when asciilower hits a unicode decode error This is one of many errors detected in parsers.c by cpychecker[1]. I haven't gone through all of them yet. 1: https://gcc-python-plugin.readthedocs.org/en/latest/index.html
Fri, 23 Jan 2015 18:41:37 +0100 largefiles: use 'default' path for pulling largefiles, not 'default-push' stable
Mads Kiilerich <madski@unity3d.com> [Fri, 23 Jan 2015 18:41:37 +0100] rev 23941
largefiles: use 'default' path for pulling largefiles, not 'default-push' The put parameter has been unused since day 0.
Fri, 23 Jan 2015 06:28:28 +0100 osx: patch .pax.gz files in pkg bundles so they extract as root (issue4081) stable
Mads Kiilerich <madski@unity3d.com> [Fri, 23 Jan 2015 06:28:28 +0100] rev 23940
osx: patch .pax.gz files in pkg bundles so they extract as root (issue4081) The packages has to be installed by root but they would be installed insecurely, owned by the uid of the unprivileged user that made the package. The local user with that uid could thus write to /usr/local/bin/hg . bdist_mpkg calls out to pax to create the package, but pax do apparently not have the power to control what it is writing. Instead, patch the pax files and set their uid fields to 0 before they are wrapped in a dmg.
Wed, 21 Jan 2015 15:54:52 -0800 repair._bundle: fix traceback for bad config value stable
Eric Sumner <ericsumner@fb.com> [Wed, 21 Jan 2015 15:54:52 -0800] rev 23939
repair._bundle: fix traceback for bad config value On IRC, rom1dep reported a traceback[1] from setting experimental.strip-bundle2-version to True. This diff catches unexpected values and falls back to the non-experimental bundle1 implementation after issuing a warning. [1] http://gist.tamytro.org/_admin/gists/qXcdQLwtApgy6e3NwWgl
Wed, 21 Jan 2015 21:47:27 +0100 subrepo: correctly add newline for git subrepo diffs stable
Mathias De Maré <mathias.demare@gmail.com> [Wed, 21 Jan 2015 21:47:27 +0100] rev 23938
subrepo: correctly add newline for git subrepo diffs Previously, git subrepo diffs did not have a newline at the end. This caused multiple subrepo diffs to be joined on the same line. Additionally, the command prompt after the diff still contained a part of the diff.
Thu, 22 Jan 2015 00:10:26 +0900 tests: discard useless "(glob)" in "reverting subrepo" lines stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 22 Jan 2015 00:10:26 +0900] rev 23937
tests: discard useless "(glob)" in "reverting subrepo" lines
Thu, 22 Jan 2015 00:10:26 +0900 check-code.py: avoid warning against "reverting subrepo ..." lines stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 22 Jan 2015 00:10:26 +0900] rev 23936
check-code.py: avoid warning against "reverting subrepo ..." lines Before this patch, "reverting subrepo subrepo/path" lines in *.t test files require "(glob)", because such lines are recognized as "reverting path/to/managed/file" by "check-code.py". On the other hand, "(glob)" for such "reverting ..." line is recognized as useless by "runt-tests.py", because subrepo paths shown in such lines are always normalized by "util.pconvert". And this causes "no result code from test" warning. As a preparation for discarding "(glob)" from such lines in subsequent patch, this patch avoids warning against them, by adding negative lookahead assertion "(?!subrepo )" to the regexp.
Thu, 22 Jan 2015 00:07:06 +0900 run-tests.py: inherit --pure option from outer run-tests.py execution stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 22 Jan 2015 00:07:06 +0900] rev 23935
run-tests.py: inherit --pure option from outer run-tests.py execution Before this patch, "test-run-tests.t" doesn't test "run-tests.py" with "--pure", even if outer "run-tests.py" is executed with it. This patch uses not "HG_RUN_TESTS_PURE" but "HGTEST_RUN_TESTS_PURE", because "HG_" prefixed environments are forcibly dropped in "_getenv()". This is also useful to run "run-tests.py" successfully by "run-tests.py --pure" on Windows without any compilation tools (like VisualStudio).
Thu, 22 Jan 2015 00:07:06 +0900 hg.bat: return exit code explicitly for indirect invocation stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 22 Jan 2015 00:07:06 +0900] rev 23934
hg.bat: return exit code explicitly for indirect invocation When "hg.bat" is invoked via interactive shell "cmd.exe" on Windows, it can store own exit code into ERRORLEVEL correctly, regardless of explicit "exit" statement in it: "cmd.exe" seems to hold ERRORLEVEL updated by the last command in the batch file (= "python hg", in "hg.bat" case). On the other hand, "hg.bat" is invoked indirectly via "subprocess.Popen" (e.g. shell alias, hooks, hgclient and so on), the parent process always receives exit code 0 from spawned "hg.bat": batch files on Windows seem not to be really spawned like as shell scripts on UNIX, but to be executed in the "cmd.exe" process. This patch returns exit code explicitly for indirect invocation. "/b" should be specified for "exit" to prevent "cmd.exe" from being terminated when "hg.bat" is invoked interactively from it.
Thu, 22 Jan 2015 00:03:58 +0900 run-tests.py: execute hghave with same env vars as ones for actual tests stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 22 Jan 2015 00:03:58 +0900] rev 23933
run-tests.py: execute hghave with same env vars as ones for actual tests Before this patch, "run-tests.py" executes "hghave" process without any modifications for environment variables, even though actual tests are executed with LC_ALL, LANG and LANGUAGE explicitly assigned "C". When "run-tests.py" is executed: - with non-"C" locale environment variables on any platforms, or - without any explicit locale environment setting on Windows (only for "outer-repo" feature using "hg root") external commands indirectly executed by "hghave" may show translated messages. This causes incorrect "hghave" result and skipping tests, because some regexp matching of "hghave" expect external commands to show un-translated messages. To prevent external commands from showing translated messages, this patch makes "run-tests.py" execute "hghave" with same environment variables as ones for actual tests. This patch doesn't make "hghave" execute external commands forcibly with LC_ALL, LANG and LANGUAGE explicitly assigned "C", because changing "run-tests.py" is cheaper than changing "hghave": - "os.popen" should be replaced by "subprocess.Popen" or so, and - setting up environment variables should be newly added
Wed, 21 Jan 2015 05:04:48 +0100 osx: use bdist_mpkg.script_bdist_mpkg module instead of bdist_mpkg command stable
Mads Kiilerich <madski@unity3d.com> [Wed, 21 Jan 2015 05:04:48 +0100] rev 23932
osx: use bdist_mpkg.script_bdist_mpkg module instead of bdist_mpkg command It seems like a default installation of bdist_mpkg makes it available as Python module, but the corresponding executable is placed in a location like /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/bin which is not in $PATH and thus not directly available. 'make osx' would thus fail. Instead, skip the bdist_mpkg executable and invoke it as a Python module. That works out of the box here.
Wed, 21 Jan 2015 05:04:46 +0100 osx: don't launch installer after building it with bdist_mpkg stable
Mads Kiilerich <madski@unity3d.com> [Wed, 21 Jan 2015 05:04:46 +0100] rev 23931
osx: don't launch installer after building it with bdist_mpkg bdist_mpkg do for some reason default to use the parameter --show ("Open with Installer.app after building") if no parameters are specified. We do not like that. All the important parameters to bdist_mpkg are already specified in setup.py and we don't have any to specify in the Makefile. Instead, specify the parameter '--' which do no harm but will disable the default opening of the installer. This makes it possible to build packages "silently".
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip