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
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)
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 06:21:40 +0000] rev 27762
help: split config user settings file by platform
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 06:09:10 +0000] rev 27761
help: label windows config help
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 06:08:41 +0000] rev 27760
help: split out unix/plan9 config help
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 05:58:02 +0000] rev 27759
help: move config default marking to its own line
timeless <timeless@mozdev.org> [Sun, 10 Jan 2016 05:04:49 +0000] rev 27758
help: split config ui.portablefilenames
Matt Harbison <matt_harbison@yahoo.com> [Tue, 12 Jan 2016 22:40:40 -0500] rev 27757
test-hgignore: add globs for Windows
Matt Mackall <mpm@selenic.com> [Mon, 11 Jan 2016 11:35:28 -0600] rev 27756
tests: run check-commit on secret changes too
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.
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.
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().
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.
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.
Matt Mackall <mpm@selenic.com> [Wed, 13 Jan 2016 15:47:37 -0600] rev 27750
merge with stable
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.