Tue, 12 Jan 2016 14:28:16 -0800 check-seclevel: use a context manager for file I/O
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:28:16 -0800] rev 27770
check-seclevel: use a context manager for file I/O
Tue, 12 Jan 2016 14:27:42 -0800 largefiles: use a context manager in _getfile
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:27:42 -0800] rev 27769
largefiles: use a context manager in _getfile
Tue, 12 Jan 2016 16:16:19 -0800 util: replace file I/O with readfile
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 16:16:19 -0800] rev 27768
util: replace file I/O with readfile
Tue, 12 Jan 2016 15:57:18 -0800 patchbomb: replace file I/O with util.readfile
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 15:57:18 -0800] rev 27767
patchbomb: replace file I/O with util.readfile
Sun, 10 Jan 2016 18:15:39 -0500 util: adjust hgcmd() to handle frozen Mercurial on OS X
Matt Harbison <matt_harbison@yahoo.com> [Sun, 10 Jan 2016 18:15:39 -0500] rev 27766
util: adjust hgcmd() to handle frozen Mercurial on OS X Previously, 'hg serve -d' was trying to exec the bundled python executable, which failed with: Unknown option: -- usage: python [option] ... Try 'python -h'... abort: child process failed to start See the previous patch for details about the content of the various command variables. Note that unlike the previous patch here an application bundling Mercurial could set $HG in the environment to get the correct result, there isn't anything that a bundling application could do to get the correct result here. 'hg serve -d' now launches under TortoiseHg, and there is a process listed in the background, but a client process cannot connect to it for some reason, so more investigation is needed.
Sun, 10 Jan 2016 17:56:08 -0500 util: adjust hgexecutable() to handle frozen Mercurial on OS X
Matt Harbison <matt_harbison@yahoo.com> [Sun, 10 Jan 2016 17:56:08 -0500] rev 27765
util: adjust hgexecutable() to handle frozen Mercurial on OS X sys.executable is "$appbundle/Contents/MacOS/python" when Mercurial is bundled in a frozen app bundle on OS X, so that isn't appropriate. It appears that this was only visible for things launched via util.system(), like external hooks, where $HG was set wrong. It appears that Mercurial also uses 'sys.modules['__main__'].__file__' (here) and 'sys.argv[0]' (in platform.gethgcmd()) to figure out the command to spawn. In both cases, this points to "$appbundle/Contents/Resources/hg", which invokes the system python since "/usr/bin/env python" is on the shebang line. On my system with a screwed up python install, I get an error importing the os module if this script is invoked. We could take the dirname of sys.executable and join 'hg' instead of this if we want to be paranoid, but py2app boostrap is setting the environment variable since 0.1.6 (current version is 0.9), so it seems safe and we might as well use it.
Sun, 10 Jan 2016 17:49:01 -0500 util: adjust 'datapath' to be correct in a frozen OS X package
Matt Harbison <matt_harbison@yahoo.com> [Sun, 10 Jan 2016 17:49:01 -0500] rev 27764
util: adjust 'datapath' to be correct in a frozen OS X package Apparently unlike py2exe, py2app copies the Mercurial source tree as-is to a Contents/Resources subdirectory of an app bundle, and places its binary stub in Contents/MacOS. (The Windows install has the 'hgext' and 'mercurial' modules in 'lib/library.zip', while the help and templates subdirectories have been moved out of the mercurial directory to the root of the installation. I assume that the python code living in a zip file is why "py2exe doesn't support __file__".) Therefore, prior to this change, Mercurial in a frozen app bundle on OS X would go looking for help *.txt, templates and locale info in Contents/MacOS, where they don't exist. There are only a handful of places that test for frozen, and not all of them are wrong for OS X, so it seems wiser to handle them on a case by case basis, rather that try to change mainfrozen(). The remaining cases are: 1) util.hgexecutable() wrongly points to the bundled python executable, and affects $HG in util.system() launched processes (e.g. external hooks) 2) util.hgcmd() wrongly points to the bundled python executable, but it seems to only affect 'hg serve -d' 3) hook._pythonhook() may be OK, since I didn't see anything outrageous when printing sys.path from an internal hook. I'm not sure if this special case is needed on OS X though. 4) sslutil._plainapplepython() is OK, because sys.executable is not /usr/bin/python, nor is it in /System/Library/Frameworks
Sun, 10 Jan 2016 08:03:58 +0000 help: add --system flag to get help for various platform(s)
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 08:03:58 +0000] rev 27763
help: add --system flag to get help for various platform(s)
Sun, 10 Jan 2016 06:21:40 +0000 help: split config user settings file by platform
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 06:21:40 +0000] rev 27762
help: split config user settings file by platform
Sun, 10 Jan 2016 06:09:10 +0000 help: label windows config help
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 06:09:10 +0000] rev 27761
help: label windows config help
Sun, 10 Jan 2016 06:08:41 +0000 help: split out unix/plan9 config help
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 06:08:41 +0000] rev 27760
help: split out unix/plan9 config help
Sun, 10 Jan 2016 05:58:02 +0000 help: move config default marking to its own line
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 05:58:02 +0000] rev 27759
help: move config default marking to its own line
Sun, 10 Jan 2016 05:04:49 +0000 help: split config ui.portablefilenames
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 05:04:49 +0000] rev 27758
help: split config ui.portablefilenames
Tue, 12 Jan 2016 22:40:40 -0500 test-hgignore: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 12 Jan 2016 22:40:40 -0500] rev 27757
test-hgignore: add globs for Windows
Mon, 11 Jan 2016 11:35:28 -0600 tests: run check-commit on secret changes too
Matt Mackall <mpm@selenic.com> [Mon, 11 Jan 2016 11:35:28 -0600] rev 27756
tests: run check-commit on secret changes too
Wed, 13 Jan 2016 14:41:10 -0500 util: don't capture exception with a name since we don't use it
Augie Fackler <augie@google.com> [Wed, 13 Jan 2016 14:41:10 -0500] rev 27755
util: don't capture exception with a name since we don't use it Spotted by pyflakes.
Fri, 08 Jan 2016 16:12:58 -0800 changegroup3: move treemanifest support into _unpackmanifests()
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Jan 2016 16:12:58 -0800] rev 27754
changegroup3: move treemanifest support into _unpackmanifests() By putting the treemanifest code in _unpackmanifests(), _addchangegroupfiles() will only be about files again, and we get a nice symmetry between _packmanifests() and _unpackmanifest(). The immediate benefit to me is that remotefilelog should not need to be updated to work with treemanifests. It should also make server.validate and progress output easier to get right. Probably bundlerepo too.
Mon, 11 Jan 2016 15:10:31 -0800 changegroup3: add empty chunk separating directories and files
Martin von Zweigbergk <martinvonz@google.com> [Mon, 11 Jan 2016 15:10:31 -0800] rev 27753
changegroup3: add empty chunk separating directories and files Remotefilelog overrides changegroup._addchangegroupfiles(), assuming it is about files, which seems like a natural assumption. However, in changegroup3, directory manifests are sent in the files section of the changegroup. These naturally make remotefilelog unhappy. The fact that the directories are not separated from the files (although they do come before the files) also makes server.validate harder to implement. Since we read one chunk at a time from the steam, once we have found a file (non-directory) entry in the stream, we would have to push the read data back into the stream, or otherwise refactor the code. It will be easier if we add an empty chunk after all directory manifests. This change adds that empty chunk, although we don't yet take advantage of it on the reading side. We will soon move the tree manifest stuff out of _addchangegroupfiles() and into _unpackmanifests().
Tue, 12 Jan 2016 21:23:45 -0800 changegroup3: introduce experimental.changegroup3 boolean config
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Jan 2016 21:23:45 -0800] rev 27752
changegroup3: introduce experimental.changegroup3 boolean config In order to give us the freedom to change the changegroup3 format, let's hide it behind an experimental config. Since it is required by treemanifests, that will override the cg3 config.
Tue, 12 Jan 2016 21:01:06 -0800 changegroup: hide packermap behind methods
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Jan 2016 21:01:06 -0800] rev 27751
changegroup: hide packermap behind methods This is to prepare for hiding changegroup3 behind a config option.
Wed, 13 Jan 2016 15:47:37 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 13 Jan 2016 15:47:37 -0600] rev 27750
merge with stable
Tue, 12 Jan 2016 13:10:31 -0800 context: check for differing flags a little earlier
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Jan 2016 13:10:31 -0800] rev 27749
context: check for differing flags a little earlier This makes it clearer that a unchanged file whose flags have changed will be reported as a modification. Also test this.
Tue, 12 Jan 2016 13:09:54 -0800 context: clarify why we don't compare file contents when nodeid differs
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Jan 2016 13:09:54 -0800] rev 27748
context: clarify why we don't compare file contents when nodeid differs See previous commit for timing information.
Tue, 12 Jan 2016 12:43:36 -0800 status: back out changeset 89f49813526c
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Jan 2016 12:43:36 -0800] rev 27747
status: back out changeset 89f49813526c This backs out 89f49813526c (status: change + back out == clean (API), 2016-01-04). Although correct, it turned out that it was just too slow. For example, 'hg status --rev .~1000 --rev .' on the Mozilla repo went from <1s to >30s on cold disk. So we go back to reporting reverted changes as modified instead of clean. These are rare anyway, as suggested by the fact that it had been broken since before Mercurial 2.0.
Tue, 12 Jan 2016 13:43:41 -0800 rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com> [Tue, 12 Jan 2016 13:43:41 -0800] rev 27746
rebase: prevent creating divergence Before this patch rebase would create divergence when you were rebasing obsolete changesets on a destination not containing one of its successors. This patch introduces rebase.allowdivergence to explicitly allow divergence creation with rebase.
Wed, 06 Jan 2016 12:55:56 -0800 rebase: create a new variable to make the next patch more legible
Laurent Charignon <lcharignon@fb.com> [Wed, 06 Jan 2016 12:55:56 -0800] rev 27745
rebase: create a new variable to make the next patch more legible
Wed, 06 Jan 2016 12:55:56 -0800 rebase: minor refactoring of _computeobsoletenotrebased
Laurent Charignon <lcharignon@fb.com> [Wed, 06 Jan 2016 12:55:56 -0800] rev 27744
rebase: minor refactoring of _computeobsoletenotrebased This patch is a refactoring of the code skipping obsolete changesets already present in destination. It makes the following patches more legible. Instead of passing all the revs to be rebased to _computeobsoletenotrebased, we only pass the obsolete revisions of the rebaseset.
Wed, 13 Jan 2016 00:09:26 -0500 test-status: stabilize for no-execbit platforms
Matt Harbison <matt_harbison@yahoo.com> [Wed, 13 Jan 2016 00:09:26 -0500] rev 27743
test-status: stabilize for no-execbit platforms The preceding #if conditional was the only modification to the file, so the "reverting file" line in the subsequent revert command was getting dropped.
Tue, 12 Jan 2016 18:38:49 -0800 merge: split up checks for unknown and ignored files that differ
Siddharth Agarwal <sid0@fb.com> [Tue, 12 Jan 2016 18:38:49 -0800] rev 27742
merge: split up checks for unknown and ignored files that differ In some real-world cases it is preferable to allow overwriting ignored files while continuing to abort on unknown files. This primarily happens when we're replacing build artifacts (which are ignored) with checked in files, but continuing to abort on differing files that aren't ignored. We're redefining merge.checkunknown to only control the behavior for files that aren't ignored. That's fine because this config was only very recently introduced and has not made its way into any Mercurial releases yet.
Tue, 12 Jan 2016 18:17:07 -0800 merge: determine what untracked conflicts cause warns and aborts separately
Siddharth Agarwal <sid0@fb.com> [Tue, 12 Jan 2016 18:17:07 -0800] rev 27741
merge: determine what untracked conflicts cause warns and aborts separately This is written in a somewhat weird style, but it's designed for code reuse in an upcoming patch.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip