Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in overriderevert
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27823
with: use context manager for wlock in overriderevert
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in removelargefiles
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27822
with: use context manager for wlock in removelargefiles
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in addlargefiles
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27821
with: use context manager for wlock in addlargefiles
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in updatelfiles
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27820
with: use context manager for wlock in updatelfiles
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in kw_dorecord
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27819
with: use context manager for wlock in kw_dorecord
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in kw_copy
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27818
with: use context manager for wlock in kw_copy
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in kw_amend
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27817
with: use context manager for wlock in kw_amend
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in keyword demo
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27816
with: use context manager for wlock in keyword demo
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in _kwfwrite
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27815
with: use context manager for wlock in _kwfwrite
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in sign
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27814
with: use context manager for wlock in sign
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in checklookup
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27813
with: use context manager for wlock in checklookup
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in copy
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27812
with: use context manager for wlock in copy
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in workingctx.undelete
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27811
with: use context manager for wlock in workingctx.undelete
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in workingctx.forget
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27810
with: use context manager for wlock in workingctx.forget
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in workingctx.add
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27809
with: use context manager for wlock in workingctx.add
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in graft
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27808
with: use context manager for wlock in graft
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in debugsetparents
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27807
with: use context manager for wlock in debugsetparents
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in debugrebuilddirstate
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27806
with: use context manager for wlock in debugrebuilddirstate
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in copy
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27805
with: use context manager for wlock in copy
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in branch
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27804
with: use context manager for wlock in branch
Fri, 15 Jan 2016 13:14:46 -0800 with: use context manager for wlock in revert
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:46 -0800] rev 27803
with: use context manager for wlock in revert
Fri, 15 Jan 2016 13:14:45 -0800 with: use context manager for wlock in remove
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:45 -0800] rev 27802
with: use context manager for wlock in remove
Fri, 15 Jan 2016 13:14:45 -0800 with: use context manager for wlock in recordinwlock
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:45 -0800] rev 27801
with: use context manager for wlock in recordinwlock
Fri, 15 Jan 2016 13:14:45 -0800 with: use context manager for wlock in _writeactive
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:45 -0800] rev 27800
with: use context manager for wlock in _writeactive
Fri, 15 Jan 2016 13:14:45 -0800 with: use context manager for wlock in _writerepo
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:45 -0800] rev 27799
with: use context manager for wlock in _writerepo
Fri, 15 Jan 2016 13:14:50 -0800 sshpeer: make remotelock a context manager
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:50 -0800] rev 27798
sshpeer: make remotelock a context manager
Fri, 15 Jan 2016 13:14:45 -0800 lock: turn a lock into a Python context manager
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:45 -0800] rev 27797
lock: turn a lock into a Python context manager This lets us greatly simply acquire/release cycles. Code pattern before: try: lock = repo.lock() # zillions of lines of code finally: lock.release() And after: with repo.lock(): # ...
Fri, 15 Jan 2016 13:14:50 -0800 with: use context manager for I/O in changedfiles in patch
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:50 -0800] rev 27796
with: use context manager for I/O in changedfiles in patch
Fri, 15 Jan 2016 13:14:45 -0800 with: use context manager for file I/O in memusage
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:45 -0800] rev 27795
with: use context manager for file I/O in memusage
Fri, 15 Jan 2016 13:14:49 -0800 i18n: don't translate a transaction name
Bryan O'Sullivan <bryano@fb.com> [Fri, 15 Jan 2016 13:14:49 -0800] rev 27794
i18n: don't translate a transaction name
Wed, 23 Dec 2015 22:37:24 +0900 chgserver: mark as a built-in extension
Yuya Nishihara <yuya@tcha.org> [Wed, 23 Dec 2015 22:37:24 +0900] rev 27793
chgserver: mark as a built-in extension
Wed, 23 Dec 2015 22:23:56 +0900 chgserver: import background server extension from cHg
Yuya Nishihara <yuya@tcha.org> [Wed, 23 Dec 2015 22:23:56 +0900] rev 27792
chgserver: import background server extension from cHg This extension is copied from https://bitbucket.org/yuja/chg/ -r 86feb5f2e971 It could be imported as mercurial/chgserver.py, but in that case, we would have to resolve circular import between chgserver and commandserver. So I decided to keep it as an extension. chgserver.chgcmdserver -> commandserver.server commandserver._servicemap -> chgserver.chgunixservice
Tue, 12 Jan 2016 15:58:59 +0000 check-code: export needs a space to avoid false positives
timeless <timeless@mozdev.org> [Tue, 12 Jan 2016 15:58:59 +0000] rev 27791
check-code: export needs a space to avoid false positives
Thu, 14 Jan 2016 11:50:28 -0800 rebase: small refactoring to allow better extensibility from extensions
Laurent Charignon <lcharignon@fb.com> [Thu, 14 Jan 2016 11:50:28 -0800] rev 27790
rebase: small refactoring to allow better extensibility from extensions Inhibit, one of evolve's extension, would like to change the way rebase works with obsolete changesets. During a rebase with inhibit, the inhibition of the obsolescence markers should be lifted for the rebase. With this small refactoring, inhibit and can wrap the _filterobsoleterevs function to lift inhibition cleanly and at the same time this change makes rebases' code more legible.
Thu, 14 Jan 2016 13:33:08 -0800 tests: non-GNU mv can't move a file onto a hardlink of itself
Danek Duvall <danek.duvall@oracle.com> [Thu, 14 Jan 2016 13:33:08 -0800] rev 27789
tests: non-GNU mv can't move a file onto a hardlink of itself On Solaris, when you try to mv a file to another path that is a hardlink to the original, it complains that they're identical. GNU mv doesn't complain, but it's simpler to just remove the original file instead.
Thu, 07 Jan 2016 06:44:37 +0100 buildrpm: move creation of RPM directories from dockerrpm
Mathias De Maré <mathias.demare@gmail.com> [Thu, 07 Jan 2016 06:44:37 +0100] rev 27788
buildrpm: move creation of RPM directories from dockerrpm Handling the creation of the RPM directories in buildrpm is more consistent and takes care of non-docker builds as well.
Thu, 14 Jan 2016 10:31:06 -0800 i18n: fix a test-gendoc.t failure
Bryan O'Sullivan <bryano@fb.com> [Thu, 14 Jan 2016 10:31:06 -0800] rev 27787
i18n: fix a test-gendoc.t failure
Thu, 14 Jan 2016 09:31:03 -0800 test-ctxmanager: fix Python 2.6 compatibility problem
Bryan O'Sullivan <bryano@fb.com> [Thu, 14 Jan 2016 09:31:03 -0800] rev 27786
test-ctxmanager: fix Python 2.6 compatibility problem
Thu, 14 Jan 2016 09:31:01 -0800 util: rename ctxmanager's __call__ method to enter
Bryan O'Sullivan <bryano@fb.com> [Thu, 14 Jan 2016 09:31:01 -0800] rev 27785
util: rename ctxmanager's __call__ method to enter
Wed, 13 Jan 2016 21:52:26 -0800 obsolete: make _computeobsoleteset much faster
Laurent Charignon <lc2817@columbia.edu> [Wed, 13 Jan 2016 21:52:26 -0800] rev 27784
obsolete: make _computeobsoleteset much faster This patch makes _computeobsoleteset much faster by looping over the draft and secrets as opposed to looping over the successors. This works because "number of draft and secret" is typically way smaller(<100) than the number of successor in the repo (~90k in my checkout of core mercurial as of today). And also because it is very fast to compute "not public()". I timed the code with the following setup: """ from mercurial import hg, ui, obsolete ui = ui.ui() repo = hg.repository(ui, "~/hg") l = repo.obsstore.successors # This caches the result """ With about 90k successors. k=obsolete._computeobsoleteset(repo) before this patch: 10 loops, best of 3: 33.9 ms per loop k=obsolete._computeobsoleteset(repo) after this patch: 10000 loops, best of 3: 83.3 µs per loop
Tue, 12 Jan 2016 08:34:38 +0000 check-commit: sort errors by line number
timeless <timeless@mozdev.org> [Tue, 12 Jan 2016 08:34:38 +0000] rev 27783
check-commit: sort errors by line number
Tue, 12 Jan 2016 08:50:15 +0000 check-commit: try to fix multiline handling
timeless <timeless@mozdev.org> [Tue, 12 Jan 2016 08:50:15 +0000] rev 27782
check-commit: try to fix multiline handling The old code did not understand the difference between the first line of the summary, and a random line in the summary that happened to include a #, or a random line in the changes that happened to include it. 965788d9ae09 is an example where it fails
Thu, 07 Jan 2016 01:28:59 +0000 check-commit: support REVs as commandline arguments
timeless <timeless@mozdev.org> [Thu, 07 Jan 2016 01:28:59 +0000] rev 27781
check-commit: support REVs as commandline arguments usage: * HG_NODE=REV check-commit * hg export REV | check-commit * check-commit REV ...
Thu, 07 Jan 2016 00:55:45 +0000 check-commit: modularize
timeless <timeless@mozdev.org> [Thu, 07 Jan 2016 00:55:45 +0000] rev 27780
check-commit: modularize
Thu, 07 Jan 2016 03:58:40 +0000 check-commit: fix summary length regexp
timeless <timeless@mozdev.org> [Thu, 07 Jan 2016 03:58:40 +0000] rev 27779
check-commit: fix summary length regexp
Tue, 12 Jan 2016 14:49:35 -0800 util: simplify file I/O functions using context managers
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:49:35 -0800] rev 27778
util: simplify file I/O functions using context managers
Tue, 12 Jan 2016 14:49:10 -0800 run-tests: use a context manager for file I/O in TextTestRunner
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:49:10 -0800] rev 27777
run-tests: use a context manager for file I/O in TextTestRunner
Tue, 12 Jan 2016 14:48:27 -0800 bundlerepo: use context manager for file I/O in _writetempbundle
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:48:27 -0800] rev 27776
bundlerepo: use context manager for file I/O in _writetempbundle
Tue, 12 Jan 2016 14:47:21 -0800 shelve: use a context manager for file I/O in listcmd
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:47:21 -0800] rev 27775
shelve: use a context manager for file I/O in listcmd
Tue, 12 Jan 2016 14:31:02 -0800 largefiles: use util.readfile in lfconvert
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:31:02 -0800] rev 27774
largefiles: use util.readfile in lfconvert
Tue, 12 Jan 2016 14:29:57 -0800 run-tests: use a context manager for file I/O
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:29:57 -0800] rev 27773
run-tests: use a context manager for file I/O
Tue, 12 Jan 2016 14:29:34 -0800 largefiles: use util.readfile in overrides
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:29:34 -0800] rev 27772
largefiles: use util.readfile in overrides
Tue, 12 Jan 2016 14:28:43 -0800 commands: use a context manager for file I/O in debugdiscovery
Bryan O'Sullivan <bryano@fb.com> [Tue, 12 Jan 2016 14:28:43 -0800] rev 27771
commands: use a context manager for file I/O in debugdiscovery
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.
Tue, 12 Jan 2016 18:12:35 -0800 merge: factor out code to get checkunknown config
Siddharth Agarwal <sid0@fb.com> [Tue, 12 Jan 2016 18:12:35 -0800] rev 27740
merge: factor out code to get checkunknown config We're going to reuse this code shortly.
Tue, 05 Jan 2016 17:37:59 -0800 hooks: add HG_NODE_LAST to txnclose and changegroup hook environments
Mateusz Kwapich <mitrandir@fb.com> [Tue, 05 Jan 2016 17:37:59 -0800] rev 27739
hooks: add HG_NODE_LAST to txnclose and changegroup hook environments Sometimes a txnclose or changegroup hook wants to iterate through all the changesets in transaction: in that situation usually the revset `$HG_NODE:` is used to select the revisions. Unfortunately this revset sometimes may contain too many changesets because we don't have the write lock while the hook runs newer changes may be added to repository in the meantime. That's why there is a need for extra variable carrying the information about the last change in the transaction.
Fri, 08 Jan 2016 10:58:04 -0800 exchange: make clone bundles non-experimental and enabled by default
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 08 Jan 2016 10:58:04 -0800] rev 27738
exchange: make clone bundles non-experimental and enabled by default The clone bundles feature was introduced in Mercurial 3.6 behind an experimental and disabled by default flag. The feature has been enabled on hg.mozilla.org for a few months and has served many terabytes of clones. Users have been encouraged to use the feature and reception has been very positive (mainly due to faster clones as a result of connecting to a CDN). I have heard no feedback about changing the feature other than inquiries about when it will be enabled by default. So, I think the feature is ready to be enabled by default. This patch renames experimental.clonebundles to ui.clonebundles, documents the option, and enables it by default. References to the experimental state of clone bundles have been removed. The remaining config option docs in clonebundles.py have been removed because they are redudant with `hg help config`. There are some oddities with behavior of clone bundles. Because clones with clone bundles are effectively 2 `hg pull` operations, there may be 2 transactions. This could result in hooks running twice. If the subsequent pull is aborted, it could result in partial rollback and an incomplete clone. This behavior is a bit wonky and should probably be documented. If this patch is accepted, I'll send a follow-up to document it. I don't think this behavior should prevent the feature being enabled by default. Reworking the clone mechanism to support interrupted or multi-part clones feels like a major new feature and something that when implemented can change the hook and rollback semantics of clone bundles. Besides, partial clone is better than full rollback and hooks running on initial clone are likely rare, so I think the impact is minimal.
Fri, 08 Jan 2016 10:57:01 -0800 exchange: make clonebundleprefers non-experimental
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 08 Jan 2016 10:57:01 -0800] rev 27737
exchange: make clonebundleprefers non-experimental In preparation for making the feature enabled by default.
Fri, 08 Jan 2016 10:53:07 -0800 clonebundles: remove advertisement of feature
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 08 Jan 2016 10:53:07 -0800] rev 27736
clonebundles: remove advertisement of feature I screwed up. When clone bundles is enabled on the server and a compatible client without the feature enabled clones, the server sends down an advertisement saying to enable the feature. The server creates the message which is printed verbatim on the client as an "output" part. There are 2 problems: 1) The message doesn't respect the client's localization 2) The message contains a reference to the "experimental.clonebundles" option. Since clone bundles is about to be marked as non-experimental and the goal of the advertisement was to encourage clients to test the experimental feature, let's just remove the broken advertisement since it no longer serves a purpose.
Fri, 08 Jan 2016 21:14:08 -0800 changegroup: remove now-unused 'wasempty' variable and parameter
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Jan 2016 21:14:08 -0800] rev 27735
changegroup: remove now-unused 'wasempty' variable and parameter
Fri, 08 Jan 2016 21:13:06 -0800 treemanifests: set bundle2 part parameter indicating treemanifest
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Jan 2016 21:13:06 -0800] rev 27734
treemanifests: set bundle2 part parameter indicating treemanifest By adding a mandatory 'treemanifest' parameter in the bundle2 part, we make it possible for the recipient to set repo requirements before the manifest revlog is accessed.
Wed, 06 Jan 2016 20:05:18 +0000 docchecker: scan for missing space before :hg:
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 20:05:18 +0000] rev 27733
docchecker: scan for missing space before :hg:
Wed, 06 Jan 2016 19:57:29 +0000 tests: run docchecker in gendoc.t
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 19:57:29 +0000] rev 27732
tests: run docchecker in gendoc.t
Wed, 06 Jan 2016 19:49:53 +0000 tests: move gendoc.t runrst comment next to runrst
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 19:49:53 +0000] rev 27731
tests: move gendoc.t runrst comment next to runrst
Wed, 06 Jan 2016 19:47:14 +0000 docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 19:47:14 +0000] rev 27730
docchecker: introduce a way to check for poor markup Specifically, :hg:`foo 'bar baz'` when rendered by `hg help` results in: 'hg foo 'bar baz'' ... which is hard to read. We encourage :hg:`foo "bar baz"` instead.
Tue, 12 Jan 2016 06:03:36 +0000 minirst: change hgrole to use single quotes
timeless <timeless@mozdev.org> [Tue, 12 Jan 2016 06:03:36 +0000] rev 27729
minirst: change hgrole to use single quotes We decided to reserve double quotes for arguments to hg because cmd does not like single quotes, so switch the outer quotes to single
Sun, 13 Dec 2015 22:09:57 +0900 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Dec 2015 22:09:57 +0900] rev 27728
paths: port to generic templater Embedded passwords are masked only in plain output because we'll want raw values in machine-readable format such as JSON. For custom template, we can add a filter to mask passwords (e.g. "{url|hidepassword}"). path.rawloc field is called as "url" than "path" because we have "pushurl" sub-option. Also, "name" and "url" are not allowed as sub-options as they conflict with the field names.
Sun, 13 Dec 2015 23:01:19 +0900 paths: merge conditions that select visibility of fields
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Dec 2015 23:01:19 +0900] rev 27727
paths: merge conditions that select visibility of fields Truth table (extracted from the original implementation): search quiet name path subopt ------ ----- ---- ---- ------ f f T T T f T T f f T f f T f T T f f f
Sun, 13 Dec 2015 22:02:32 +0900 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Dec 2015 22:02:32 +0900] rev 27726
paths: use single loop for both search=None|pattern cases This will help porting to the formatter API. This patch adds test for empty pathitems to make sure "hg paths" never say "not found!".
Sun, 13 Dec 2015 21:55:57 +0900 paths: reorder else clause for readability of subsequent patches
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Dec 2015 21:55:57 +0900] rev 27725
paths: reorder else clause for readability of subsequent patches This prepares for porting to the formatter API. Future patches will use a single loop to handle both search=None|pattern cases because formatter output should be the same. "pathitems" will be switched instead.
Sun, 13 Dec 2015 21:54:00 +0900 paths: drop ui.status label from output of "hg paths name"
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Dec 2015 21:54:00 +0900] rev 27724
paths: drop ui.status label from output of "hg paths name" We just need to not print path if --quiet. ui.status label is unwanted.
Wed, 06 Jan 2016 11:01:55 -0800 unionrepo: fix wrong rev being checked in iscensored (issue5024) stable
Sean Farley <sean@farley.io> [Wed, 06 Jan 2016 11:01:55 -0800] rev 27723
unionrepo: fix wrong rev being checked in iscensored (issue5024)
Mon, 11 Jan 2016 21:00:29 -0500 summary: print unstable, bumped and divergent as unconditionally plural
Matt Harbison <matt_harbison@yahoo.com> [Mon, 11 Jan 2016 21:00:29 -0500] rev 27722
summary: print unstable, bumped and divergent as unconditionally plural This aligns with the unconditional plural output for the update line contents, as well as the incoming/outgoing bookmarks line. It also matches the message in evolve's summary hook as of 4f83b2d2d20d. (Though I thought this was removed recently?)
Mon, 11 Jan 2016 18:16:38 -0800 debugshell: disable demand importer when importing debugger
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 11 Jan 2016 18:16:38 -0800] rev 27721
debugshell: disable demand importer when importing debugger For reasons I can't explain (but likely have something to do with a combination of __import__ inferring default values for arguments and the demand importer mechanism further assuming defaults), the demand importer isn't playing well with IPython. Without this patch, we get a failure "ValueError: Attempted relative import in non-package" when attempting to import "IPython." The stack has numerous demandimport calls on it and adding "IPython" to the exclude list in demandimport isn't enough to make the problem go away, which means the issue is likely somewhere in the bowells of IPython. It's easier to just disable the demand importer when importing the debugger.
Mon, 04 Jan 2016 10:13:29 -0800 status: change + back out == clean (API)
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Jan 2016 10:13:29 -0800] rev 27720
status: change + back out == clean (API) After backing out a change, so the file contents is equal to a previous revision of itself, we currently report the status between the two equal revisions as modified. This is because context._buildstatus() reports any file whose new nodeid is not equal to _newnode as modified. That magic nodeid is given only to files added or modified in the working directory, so any file whose nodeid has changed between two revisions will be reported as modified. Fix by simply comparing the file contents for all cases where the nodeid changed, whether they are in the working copy or committed. Marking with (API) as it subtly changes the semantics of the method.
Sat, 09 Jan 2016 22:58:10 -0800 convert: use manifest.diff() instead of ctx.status()
Martin von Zweigbergk <martinvonz@google.com> [Sat, 09 Jan 2016 22:58:10 -0800] rev 27719
convert: use manifest.diff() instead of ctx.status() mercurial_source.getchanges() seems to care about files whose nodeid has changed even if their contents has not (i.e. it has been reverted/backed out). The method uses ctx1.status(ctx2) to find differencing files. However, that method is currently broken and reports reverted changes as modified. In order to fix that method, we first need to rewrite getchanges() using manifest.diff(), which does report reverted files as modified (because it's about differences in the manifest, so about nodeids).
Sun, 10 Jan 2016 21:07:34 -0800 convert: replace cache of (m,a,r) by (ma,r)
Martin von Zweigbergk <martinvonz@google.com> [Sun, 10 Jan 2016 21:07:34 -0800] rev 27718
convert: replace cache of (m,a,r) by (ma,r) The next commit will rewrite the way we find changes between two manifests. By making the cache not care about the difference between added and modified files, we don't require the rewritten code to care about that difference either. Also extract the call to ctx.status() to simplify the next commit.
Sat, 09 Jan 2016 21:42:48 -0800 convert: use _ prefix for private methods in hg sink
Martin von Zweigbergk <martinvonz@google.com> [Sat, 09 Jan 2016 21:42:48 -0800] rev 27717
convert: use _ prefix for private methods in hg sink This makes it clearer which methods are part of the interface defined by the superclass.
Wed, 06 Jan 2016 17:18:18 +0000 children: update help with replacement
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 17:18:18 +0000] rev 27716
children: update help with replacement
Wed, 06 Jan 2016 17:17:49 +0000 graphlog: update help with replacement
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 17:17:49 +0000] rev 27715
graphlog: update help with replacement
Wed, 23 Dec 2015 06:36:47 +0000 histedit: clarify modes
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 06:36:47 +0000] rev 27714
histedit: clarify modes also fix terse command syntax
Tue, 22 Dec 2015 23:21:53 +0000 histedit: explain basics of histedit commands
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 23:21:53 +0000] rev 27713
histedit: explain basics of histedit commands This should be hooked into @action via an extended help argument, but that is future work.
Wed, 23 Dec 2015 07:37:45 +0000 histedit: report the unacceptable changeset
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 07:37:45 +0000] rev 27712
histedit: report the unacceptable changeset
Mon, 11 Jan 2016 22:00:07 -0500 mdiff: don't emit a diff header for empty trivial deltas
Mike Hommey <mh@glandium.org> [Mon, 11 Jan 2016 22:00:07 -0500] rev 27711
mdiff: don't emit a diff header for empty trivial deltas An empty trivial delta, coded as (0, 0, 0) makes the delta application do nothing, but still takes 12 bytes, while skipping it altogether works as much, without taking any space at all.
Mon, 11 Jan 2016 09:49:48 -0800 commands: get rid of empty try/finally block from _dograft
Bryan O'Sullivan <bos@serpentine.com> [Mon, 11 Jan 2016 09:49:48 -0800] rev 27710
commands: get rid of empty try/finally block from _dograft This diff is purely an indentation change to clean up a block that was kept in place to make 77995317b374 easier to read.
Mon, 11 Jan 2016 09:49:47 -0800 commands: get rid of empty try/finally block from _dobackout
Bryan O'Sullivan <bos@serpentine.com> [Mon, 11 Jan 2016 09:49:47 -0800] rev 27709
commands: get rid of empty try/finally block from _dobackout This diff is purely an indentation change to clean up a block that was kept in place to make c7217f1458bf easier to read.
Mon, 11 Jan 2016 09:49:39 -0800 commands: get rid of empty try/finally block from import_
Bryan O'Sullivan <bos@serpentine.com> [Mon, 11 Jan 2016 09:49:39 -0800] rev 27708
commands: get rid of empty try/finally block from import_ This diff is purely an indentation change to clean up a block that was kept in place to make 713b09fc9fbb easier to read.
Sat, 02 Jan 2016 15:09:58 -0800 streamclone: use context manager for writing files
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Jan 2016 15:09:58 -0800] rev 27707
streamclone: use context manager for writing files These are the file writes that have the most to gain from background I/O. Plug in a context manager so I can design the background I/O mechanism with context managers in mind.
Sat, 02 Jan 2016 15:19:47 -0800 scmutil: use context managers for file handles
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Jan 2016 15:19:47 -0800] rev 27706
scmutil: use context managers for file handles Now that we dropped support for Python 2.4, we are able to use context managers. Let's replace the try..finally pattern in scmutil.py with context managers, which close files automatically when the context manager is exited. There should be no change in behavior with this patch. Why convert to context managers if nothing is broken? I'm working on closing file handles in background threads to improve performance on Windows. As part of this, I realized there could be some future issues if the background file closing code isn't designed with context managers in mind. So, I'd like to switch some code to context managers so I can design an API that works with context managers.
Sat, 02 Jan 2016 15:33:01 -0800 statichttprepo: implement __enter__ and __exit__ on httprangeheader
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Jan 2016 15:33:01 -0800] rev 27705
statichttprepo: implement __enter__ and __exit__ on httprangeheader httprangeheader behaves like a file object. Implement __enter__ and __exit__ so it can be used as a context manager, just like file objects.
Sat, 02 Jan 2016 16:41:57 -0800 osutil: implement __enter__ and __exit__ on posixfile
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Jan 2016 16:41:57 -0800] rev 27704
osutil: implement __enter__ and __exit__ on posixfile So they can be used as context managers.
Mon, 11 Jan 2016 15:25:43 -0800 util: introduce ctxmanager, to avoid nested try/finally blocks
Bryan O'Sullivan <bos@serpentine.com> [Mon, 11 Jan 2016 15:25:43 -0800] rev 27703
util: introduce ctxmanager, to avoid nested try/finally blocks This is similar in spirit to contextlib.nested in Python <= 2.6, but uses an extra level of indirection to avoid its inability to clean up if an __enter__ method raises an exception. Why add this mechanism? It greatly simplifies scoped resource management, and lets us eliminate several hundred lines of try/finally blocks. In many of these cases the "finally" is separated from the "try" by hundreds of lines of code, which makes the connection between resource acquisition and disposal difficult to follow. (The preferred mechanism would be the "multi-with" syntax of 2.7+, but Mercurial can't move to 2.7 for a while.) Intended use: >>> with ctxmanager(lambda: file('foo'), lambda: file('bar')) as c: >>> f1, f2 = c() This will open both foo and bar when c() is invoked, and will close both upon exit from the block. If the attempt to open bar raises an exception, the block will not be entered - but foo will still be closed.
Mon, 11 Jan 2016 23:13:34 +0000 hghave: support HGMODULEPOLICY for pure
timeless <timeless@mozdev.org> [Mon, 11 Jan 2016 23:13:34 +0000] rev 27702
hghave: support HGMODULEPOLICY for pure HGMODULEPOLICY was introduced in 4374d819ccd5
Mon, 11 Jan 2016 14:27:12 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 11 Jan 2016 14:27:12 -0600] rev 27701
merge with stable
Fri, 08 Jan 2016 12:07:15 -0600 tests: extend check-commit self-tests
Matt Mackall <mpm@selenic.com> [Fri, 08 Jan 2016 12:07:15 -0600] rev 27700
tests: extend check-commit self-tests This now contains both positive and negative tests for almost all the check-commit rules.
Thu, 07 Jan 2016 14:57:57 -0600 encoding: handle UTF-16 internal limit with fromutf8b (issue5031)
Matt Mackall <mpm@selenic.com> [Thu, 07 Jan 2016 14:57:57 -0600] rev 27699
encoding: handle UTF-16 internal limit with fromutf8b (issue5031) Default builds of Python have a Unicode type that isn't actually full Unicode but UTF-16, which encodes non-BMP codepoints to a pair of BMP codepoints with surrogate escaping. Since our UTF-8b hack escaping uses a plane that overlaps with the UTF-16 escaping system, this gets extra complicated. In addition, unichr() for codepoints greater than U+FFFF may not work either. This changes the code to reuse getutf8char to walk the byte string, so we only rely on Python for unpacking our U+DCxx characters.
Wed, 11 Nov 2015 21:18:02 -0500 bmstore: add handling of the active bookmark
Augie Fackler <augie@google.com> [Wed, 11 Nov 2015 21:18:02 -0500] rev 27698
bmstore: add handling of the active bookmark This further centralizes the handling of bookmark storage, and will help get some lingering bookmarks business out of localrepo. Right now, this change implies reading of the active bookmark to also imply reading all bookmarks from disk - for users with many many bookmarks this may be a measurable performance hit. In that case, we should migrate bmstore to be able to lazy-read its properties from disk rather than having to eagerly read them, but I decided to avoid doing that to try and avoid some potentially complicated filecache decorator issues. This doesn't move the logic for writing the active bookmark into a transaction, though that is probably the correct next step. Since the API probably needs to morph a little more, I didn't bother marking bookmarks.{activate,deactivate} as deprecated yet.
Thu, 07 Jan 2016 20:02:47 -0800 patchbomb: treat empty address list as no addresses
Bryan O'Sullivan <bos@serpentine.com> [Thu, 07 Jan 2016 20:02:47 -0800] rev 27697
patchbomb: treat empty address list as no addresses Previously it wasn't possible to use configuration to avoid being prompted for e.g. a CC list when using patchbomb to send emails. We now make it possible to supply an empty value.
Thu, 07 Jan 2016 19:45:03 -0800 config: add hasconfig method and supporting plumbing
Bryan O'Sullivan <bos@serpentine.com> [Thu, 07 Jan 2016 19:45:03 -0800] rev 27696
config: add hasconfig method and supporting plumbing We add the hasconfig method to make it possible to distinguish between a config value that was never supplied and one that is empty.
Tue, 05 Jan 2016 21:25:51 -0800 verify: replace "output parameters" by return values
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Jan 2016 21:25:51 -0800] rev 27695
verify: replace "output parameters" by return values _verifychangelog() and _verifymanifest() accept dictionaries that they populate. We pass in empty dictionaries, so it's clearer to create them in the functions and return them.
Tue, 05 Jan 2016 22:23:27 +0000 shelve: hook afterresolvedstates
timeless <timeless@mozdev.org> [Tue, 05 Jan 2016 22:23:27 +0000] rev 27694
shelve: hook afterresolvedstates
Fri, 08 Jan 2016 12:35:02 -0600 check-code: allow only-whitespace lines in tests
Matt Mackall <mpm@selenic.com> [Fri, 08 Jan 2016 12:35:02 -0600] rev 27693
check-code: allow only-whitespace lines in tests These turn out to be necessary to embed diffs with blank lines in test input. So we now complain about whitespace following a character.
Thu, 10 Dec 2015 12:56:23 -0600 check-commit: try to curb bad commit summary keywords
Matt Mackall <mpm@selenic.com> [Thu, 10 Dec 2015 12:56:23 -0600] rev 27692
check-commit: try to curb bad commit summary keywords The goal of commit summary keywords is to help us sort, categorize, and filter our voluminous commits for our release notes in a way that's helpful and meaningful to end users. Lately, there have been a huge number of "keywords" that are neither words nor particularly key. This patch tries to discourage that by narrowing the allowed characters to alphanumeric. In particular, it doesn't allow "." (method, function names, and file extensions) and "/" (filenames). It also gives a short reminder of what a keyword ought to be.
Fri, 08 Jan 2016 14:47:02 -0800 changegroup: don't add a second trailing '/' in dir name
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Jan 2016 14:47:02 -0800] rev 27691
changegroup: don't add a second trailing '/' in dir name The paths given from treemanifest.dir() already contains the trailing slash.
Fri, 08 Jan 2016 14:33:13 -0800 changegroup: remove left-over debugging help
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Jan 2016 14:33:13 -0800] rev 27690
changegroup: remove left-over debugging help
Mon, 28 Dec 2015 17:48:40 +0000 run-tests: skip threading for a single test
timeless <timeless@mozdev.org> [Mon, 28 Dec 2015 17:48:40 +0000] rev 27689
run-tests: skip threading for a single test Threading is incompatible with most Python debuggers, which makes debugging run-tests.py a real pain. If there is only one test to run, skip using a thread for it. Note that --debug is not compatible with debugging tests, since it bypasses the output handling, which is where much of the excitement is.
Fri, 08 Jan 2016 16:27:25 +0100 sslutil: fix reversed logic (issue5034) stable
Gábor Stefanik <gabor.stefanik@nng.com> [Fri, 08 Jan 2016 16:27:25 +0100] rev 27688
sslutil: fix reversed logic (issue5034)
Thu, 07 Jan 2016 12:49:26 +0000 installer: add windows application version number to inno installer script
Urs Rau <urs.rau@gmail.com> [Thu, 07 Jan 2016 12:49:26 +0000] rev 27687
installer: add windows application version number to inno installer script This addition to the inno installer script means that the windows uninstaller registry key “DisplayVersion" is set to the application version number and will show in Add/Remove Programs.
Tue, 05 Jan 2016 13:33:09 -0800 run-tests: add 'diff' entry in json report
Laurent Charignon <lcharignon@fb.com> [Tue, 05 Jan 2016 13:33:09 -0800] rev 27686
run-tests: add 'diff' entry in json report This patch adds to the json report the "diff" between expected and observed result. This diff can be useful for automatically filing bug report on failing tests.
Tue, 01 Dec 2015 13:08:05 -0500 bookmarks: make _readactive safe when readlines raises ENOENT
Augie Fackler <augie@google.com> [Tue, 01 Dec 2015 13:08:05 -0500] rev 27685
bookmarks: make _readactive safe when readlines raises ENOENT When reading over static http, the file isn't actually opened until the readlines() call, so we have to check for ENOENT IOErrors here too. This is necessary so that we can use the bmstore everywhere for managing the active bookmark, which will be true in the next change.
Thu, 17 Dec 2015 21:24:08 -0500 wix: add help for current internal topics
Matt Harbison <matt_harbison@yahoo.com> [Thu, 17 Dec 2015 21:24:08 -0500] rev 27684
wix: add help for current internal topics This makes the changes in a79cba6cb206 and 84784f834b3a available on Windows. I'm not setup to make the installer, so someone with experience in this area should probably give it a look. In looking around to try to figure out how to build the installer, it looks like the Makefile may need an update to $DOCFILES.
Thu, 07 Jan 2016 14:03:11 -0800 help: fix quoting for bundle1 options
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 07 Jan 2016 14:03:11 -0800] rev 27683
help: fix quoting for bundle1 options
Thu, 07 Jan 2016 17:51:54 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 07 Jan 2016 17:51:54 -0600] rev 27682
merge with stable
Fri, 01 Jan 2016 22:35:34 +0900 extdiff: use @command decorator to set up diff commands
Yuya Nishihara <yuya@tcha.org> [Fri, 01 Jan 2016 22:35:34 +0900] rev 27681
extdiff: use @command decorator to set up diff commands It can set "inferrepo" attribute appropriately.
Mon, 04 Jan 2016 22:13:46 +0900 extdiff: factor out list of common options
Yuya Nishihara <yuya@tcha.org> [Mon, 04 Jan 2016 22:13:46 +0900] rev 27680
extdiff: factor out list of common options
Mon, 04 Jan 2016 21:40:05 +0900 dispatch: copy inferrepo attribute to alias commands
Yuya Nishihara <yuya@tcha.org> [Mon, 04 Jan 2016 21:40:05 +0900] rev 27679
dispatch: copy inferrepo attribute to alias commands The other attributes are copied. Let's do the same for the inferrepo.
Wed, 06 Jan 2016 04:59:46 +0000 transplant: specify the right file and path for unfinishedstates
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 04:59:46 +0000] rev 27678
transplant: specify the right file and path for unfinishedstates
Wed, 06 Jan 2016 04:59:21 +0000 transplant: only use checkunfinished if not continue
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 04:59:21 +0000] rev 27677
transplant: only use checkunfinished if not continue
Tue, 05 Jan 2016 22:46:04 +0000 transplant: correct language to use working directory
timeless <timeless@mozdev.org> [Tue, 05 Jan 2016 22:46:04 +0000] rev 27676
transplant: correct language to use working directory
Wed, 23 Dec 2015 21:30:38 +0000 histedit: replace @addhisteditaction with @action
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 21:30:38 +0000] rev 27675
histedit: replace @addhisteditaction with @action @action supports verbs, messages, priority, and internal messages should be translated. internal means the action should not be listed. geteditcomment will construct the verbs list based on @actions (prefering priority over non priority, otherwise favoring verbs with short forms over verbs without).
Wed, 23 Dec 2015 21:20:08 +0000 histedit: prefer edit commit, edit message, use commit
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 21:20:08 +0000] rev 27674
histedit: prefer edit commit, edit message, use commit Selecting editing commits, rewording commit messages, and selecting commits are key actions, we will prefer them more generally in a future commit, this pulls them ahead before that to make the diffs easier to read. The remaining commands are left alphabetically sorted
Wed, 23 Dec 2015 21:17:45 +0000 histedit: replace editcomment with a function
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 21:17:45 +0000] rev 27673
histedit: replace editcomment with a function
Tue, 05 Jan 2016 07:47:08 -0800 debugignore: find out why a file is being ignored (issue4856)
Laurent Charignon <lcharignon@fb.com> [Tue, 05 Jan 2016 07:47:08 -0800] rev 27672
debugignore: find out why a file is being ignored (issue4856) This patch adds a capability to hg debugignore: to explain why a given file is being ignores by mercurial. We display the filename, line and linenumber of the rule that lead us to ignore the file.
Tue, 05 Jan 2016 07:47:08 -0800 debugignore: find out if a file is being ignored
Laurent Charignon <lcharignon@fb.com> [Tue, 05 Jan 2016 07:47:08 -0800] rev 27671
debugignore: find out if a file is being ignored Before this patch debugignore was just displaying the list of ignore patterns. This patch makes it support a list of filename as argument and tells the user if those given files are ignored or not.
Tue, 05 Jan 2016 07:52:04 -0800 dirstate: add a way to get the ignore file/line matching an ignored file
Laurent Charignon <lcharignon@fb.com> [Tue, 05 Jan 2016 07:52:04 -0800] rev 27670
dirstate: add a way to get the ignore file/line matching an ignored file This information will be used to improve debugignore (issue4856).
Tue, 05 Jan 2016 19:59:21 +0000 clone: move bookmarks and checkouts before pull help
timeless <timeless@mozdev.org> [Tue, 05 Jan 2016 19:59:21 +0000] rev 27669
clone: move bookmarks and checkouts before pull help The bookmark/checkout help actually split the pull help. The subsequent verbose container is talking about pull too. This change puts the pull help back together again.
Mon, 04 Jan 2016 09:44:58 -0800 status: revert + flag-change == modified
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Jan 2016 09:44:58 -0800] rev 27668
status: revert + flag-change == modified After just changing the flag on a file, plain 'hg status' will report the file as modified. However, after reverting a file to a previous revision's state and changing the flag, it will be reported as clean. Fix by comparing the flags that were previously ignored in context._buildstatus().
Tue, 05 Jan 2016 20:52:34 -0800 util: remove outdated comment about construction overhead
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 05 Jan 2016 20:52:34 -0800] rev 27667
util: remove outdated comment about construction overhead An old implementation of this class (possibly only in my local repo) allocated nodes in the cache during construction time, making __init__ slow for large cache capacities. The current implementation lazily grow the cache size, making this comment wrong.
Wed, 06 Jan 2016 06:37:34 +0000 test-transplant.t: improve test coverage
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 06:37:34 +0000] rev 27666
test-transplant.t: improve test coverage * ?, x, q * not a parent * --source * outstanding local changes * outstanding uncommitted merges * no revision checked out * checkopts all+branch+rev * checkopts all-branch * checkopts no-args * checkopts continue+all * revset:transplanted(...) * filter corrupted changeset
Wed, 06 Jan 2016 15:17:28 +0800 help: use backticks for progress.format keywords, correct letter case
Anton Shestakov <av6@dwimlabs.net> [Wed, 06 Jan 2016 15:17:28 +0800] rev 27665
help: use backticks for progress.format keywords, correct letter case
Wed, 06 Jan 2016 07:55:57 +0000 log: help provide sort by date example
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 07:55:57 +0000] rev 27664
log: help provide sort by date example
Wed, 06 Jan 2016 19:29:45 -0500 log: mention ordering
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 19:29:45 -0500] rev 27663
log: mention ordering a user complained that hg help log did not hint how to sort the output by date
Wed, 06 Jan 2016 11:12:09 -0800 transaction: remove 'if True:'
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Jan 2016 11:12:09 -0800] rev 27662
transaction: remove 'if True:' This seems to be left over from 96dd93de548c (transaction: reorder unlinking .hg/journal and .hg/journal.backupfiles, 2015-10-16).
Thu, 31 Dec 2015 13:31:42 -0500 lazymanifest: check more return values in filtercopy
Augie Fackler <raf@durin42.com> [Thu, 31 Dec 2015 13:31:42 -0500] rev 27661
lazymanifest: check more return values in filtercopy Spotted by Bryan O'Sullivan (and vexingly not the static analyzer I've been using.)
Thu, 17 Dec 2015 10:30:17 +0000 mercurial: pass ui to extensions.load (issue5007)
Jun Wu <quark@fb.com> [Thu, 17 Dec 2015 10:30:17 +0000] rev 27660
mercurial: pass ui to extensions.load (issue5007) extensions.load does need ui argument to print error if an extension fails to load.
Mon, 04 Jan 2016 21:54:46 -0800 test-patchbomb.t: drop a number of now-redundant uses of "-n"
Bryan O'Sullivan <bos@serpentine.com> [Mon, 04 Jan 2016 21:54:46 -0800] rev 27659
test-patchbomb.t: drop a number of now-redundant uses of "-n"
Mon, 04 Jan 2016 21:54:46 -0800 test-patchbomb.t: test use of sendmail program
Bryan O'Sullivan <bos@serpentine.com> [Mon, 04 Jan 2016 21:54:46 -0800] rev 27658
test-patchbomb.t: test use of sendmail program
Sat, 02 Jan 2016 03:11:52 -0800 merge: add options to warn or ignore on colliding unknown files
Siddharth Agarwal <sid0@fb.com> [Sat, 02 Jan 2016 03:11:52 -0800] rev 27657
merge: add options to warn or ignore on colliding unknown files A 'colliding unknown file' is a file that meets all of the following conditions: - is untracked or ignored on disk - is present in the changeset being merged or updated to - has different contents Previously, we would always abort whenever we saw such files. With this config option we can choose to warn and back the unknown files up instead, or even forgo the warning entirely and silently back the unknown files up. Common use cases for this configuration include a large scale transition of formerly ignored unknown files to tracked files. In some cases the files can be given new names, but in other cases, external "convention over configuration" constraints have determined that the file must retain the same name as before.
Sat, 02 Jan 2016 03:21:01 -0800 batchget: add support for backing up files
Siddharth Agarwal <sid0@fb.com> [Sat, 02 Jan 2016 03:21:01 -0800] rev 27656
batchget: add support for backing up files We're going to use this in an upcoming feature.
Sat, 02 Jan 2016 03:02:57 -0800 merge: add a new 'backup' argument to get actions
Siddharth Agarwal <sid0@fb.com> [Sat, 02 Jan 2016 03:02:57 -0800] rev 27655
merge: add a new 'backup' argument to get actions We're going to use this in an upcoming patch to back untracked files up when they're replaced by tracked ones.
Sat, 02 Jan 2016 03:02:57 -0800 _checkunknownfiles: turn 'conflicts' into a set
Siddharth Agarwal <sid0@fb.com> [Sat, 02 Jan 2016 03:02:57 -0800] rev 27654
_checkunknownfiles: turn 'conflicts' into a set We'll check for membership in this set in an upcoming patch.
Sat, 02 Jan 2016 03:02:57 -0800 checkunknownfiles: make control flow clearer
Siddharth Agarwal <sid0@fb.com> [Sat, 02 Jan 2016 03:02:57 -0800] rev 27653
checkunknownfiles: make control flow clearer In particular, make it clear that we only check for and abort on conflicts if force is not true.
Sat, 02 Jan 2016 03:02:57 -0800 _checkunknownfiles: rename 'aborts' to 'conflicts'
Siddharth Agarwal <sid0@fb.com> [Sat, 02 Jan 2016 03:02:57 -0800] rev 27652
_checkunknownfiles: rename 'aborts' to 'conflicts' In upcoming patches we'll be able to do more useful things than aborting.
Sat, 02 Jan 2016 03:02:57 -0800 origpath: move from cmdutil to scmutil
Siddharth Agarwal <sid0@fb.com> [Sat, 02 Jan 2016 03:02:57 -0800] rev 27651
origpath: move from cmdutil to scmutil This is a lower-level function so it doesn't need to be in cmdutil, and putting it here avoids a bunch of potential import cycle issues.
Sun, 22 Nov 2015 17:57:35 -0800 revlog: remove unnecessary cache validation in _chunks
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 22 Nov 2015 17:57:35 -0800] rev 27650
revlog: remove unnecessary cache validation in _chunks Previously, we likely called _chunkraw() multiple times in order to ensure it didn't change out from under us. I'm pretty certain this code had its origins in the days where we attempted to have thread safety of localrepository and thus revlog instances. revlog instances are already not thread safe for writing. And, as of Mercurial 3.6, hgweb uses a separate localrepository instance per request, so there should only be a single thread reading a revlog at a time. We more or less decided that attempting to make classes like revlog thread safe is a lost cause. So, this patch removes thread safety from _chunks. As a result, we make one less call into _chunkraw() when the initial read isn't serviced by the cache. This translates to savings of 4 function calls overall and possibly prevents the creation of an additional buffer view into the cache. I doubt this translates into any real world performance wins because decompression will almost certainly dwarf time spent in _chunks(). But it does make the code simpler, so it is an improvement.
Tue, 05 Jan 2016 19:51:51 -0800 revlog: return offset from _chunkraw()
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 05 Jan 2016 19:51:51 -0800] rev 27649
revlog: return offset from _chunkraw() A subsequent patch will refactor _chunks() and the calculation of the offset will no longer occur in that function. Prepare by returning the offset from _chunkraw().
Tue, 05 Jan 2016 17:08:14 -0800 verify: get rid of some unnecessary local variables
Durham Goode <durham@fb.com> [Tue, 05 Jan 2016 17:08:14 -0800] rev 27648
verify: get rid of some unnecessary local variables Now that all the major functionality has been refactored out, we can delete some unused local variables.
Tue, 05 Jan 2016 17:08:14 -0800 verify: move changelog verificaiton to its own function
Durham Goode <durham@fb.com> [Tue, 05 Jan 2016 17:08:14 -0800] rev 27647
verify: move changelog verificaiton to its own function This makes verify more modular so extensions can hook into it.
Tue, 05 Jan 2016 18:34:39 -0800 verify: move manifest verification to its own function
Durham Goode <durham@fb.com> [Tue, 05 Jan 2016 18:34:39 -0800] rev 27646
verify: move manifest verification to its own function This makes verify more modular, making it easier for extensions to extend.
Tue, 05 Jan 2016 18:31:51 -0800 verify: move file cross checking to its own function
Durham Goode <durham@fb.com> [Tue, 05 Jan 2016 18:31:51 -0800] rev 27645
verify: move file cross checking to its own function This is part of making verify more modular so extensions can hook into it.
Tue, 05 Jan 2016 18:28:46 -0800 verify: move filelog verification to its own function
Durham Goode <durham@fb.com> [Tue, 05 Jan 2016 18:28:46 -0800] rev 27644
verify: move filelog verification to its own function This makes verify more modular so extensions can hook in more easily.
Tue, 05 Jan 2016 17:08:14 -0800 verify: move checkentry() to be a class function
Durham Goode <durham@fb.com> [Tue, 05 Jan 2016 17:08:14 -0800] rev 27643
verify: move checkentry() to be a class function This is part of making verify more modular so extensions can hook into it.
Tue, 05 Jan 2016 17:08:14 -0800 verify: move checklog() onto class
Durham Goode <durham@fb.com> [Tue, 05 Jan 2016 17:08:14 -0800] rev 27642
verify: move checklog() onto class This is part of an effort to make verify more modular so extensions can hook into it.
Mon, 04 Jan 2016 21:21:59 +0100 dockerrpm: fix CentOS 5 RPMs (issue4977) stable
Mathias De Maré <mathias.demare@gmail.com> [Mon, 04 Jan 2016 21:21:59 +0100] rev 27641
dockerrpm: fix CentOS 5 RPMs (issue4977) The older rpmbuild in CentOS 5 fails if some of the output directories have not been created yet. This change results in creating those directories.
Thu, 31 Dec 2015 17:41:59 +0000 check-code: enforce strict spacing around assignment
timeless <timeless@mozdev.org> [Thu, 31 Dec 2015 17:41:59 +0000] rev 27640
check-code: enforce strict spacing around assignment
Thu, 31 Dec 2015 08:17:28 +0000 cleanup: remove superfluous space after space after equals (tests)
timeless <timeless@mozdev.org> [Thu, 31 Dec 2015 08:17:28 +0000] rev 27639
cleanup: remove superfluous space after space after equals (tests)
Thu, 31 Dec 2015 08:17:15 +0000 cleanup: remove superfluous space after space after equals (C)
timeless <timeless@mozdev.org> [Thu, 31 Dec 2015 08:17:15 +0000] rev 27638
cleanup: remove superfluous space after space after equals (C)
Thu, 31 Dec 2015 08:16:59 +0000 cleanup: remove superfluous space after space after equals (python)
timeless <timeless@mozdev.org> [Thu, 31 Dec 2015 08:16:59 +0000] rev 27637
cleanup: remove superfluous space after space after equals (python)
Mon, 04 Jan 2016 21:54:46 -0800 tests: make a stab at approximating wall-clock times
Bryan O'Sullivan <bos@serpentine.com> [Mon, 04 Jan 2016 21:54:46 -0800] rev 27636
tests: make a stab at approximating wall-clock times Vaguely empirical observations: * ".py" tests are about an order of magnitude faster than ".t" tests * dividing size by 1000 gives an approximation to wall-clock run time (in seconds) that is not completely ridiculous.
Mon, 04 Jan 2016 21:54:46 -0800 tests: only stat a test file if we don't already know its "cost"
Bryan O'Sullivan <bos@serpentine.com> [Mon, 04 Jan 2016 21:54:46 -0800] rev 27635
tests: only stat a test file if we don't already know its "cost"
Mon, 04 Jan 2016 21:54:44 -0800 tests: write recent run times to a file named tests/.testtimes
Bryan O'Sullivan <bos@serpentine.com> [Mon, 04 Jan 2016 21:54:44 -0800] rev 27634
tests: write recent run times to a file named tests/.testtimes This is an effortless way to track how long each test takes without having to pass any extra command line options.
Sun, 20 Dec 2015 11:56:24 -0800 wireproto: support disabling bundle1 only if repo is generaldelta
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 11:56:24 -0800] rev 27633
wireproto: support disabling bundle1 only if repo is generaldelta I recently implemented the server.bundle1* options to control whether bundle1 exchange is allowed. After thinking about Mozilla's strategy for handling generaldelta rollout a bit more, I think server operators need an additional lever: disable bundle1 if and only if the repo is generaldelta. bundle1 exchange for non-generaldelta repos will not have the potential for CPU explosion that generaldelta repos do. Therefore, it makes sense for server operators to continue to allow bundle1 exchange for non-generaldelta repos without having to set a per-repo hgrc option to change the policy depending on whether the repo is generaldelta. This patch introduces a new set of options to control bundle1 behavior for generaldelta repos. These options enable server operators to limit bundle1 restrictions to the class of repos that can be performance issues. It also allows server operators to tie bundle1 access to store format. In many server environments (including Mozilla's), legacy repos will not be generaldelta and new repos will or might be. New repos often aren't bound by legacy access requirements, so setting a global policy that disallows access to new/generaldelta repos via bundle1 could be a reasonable policy in many server environments. This patch makes this policy very easy to implement (modify global hgrc, add options to existing generaldelta repos to grandfather them in).
Sat, 02 Jan 2016 15:14:55 -0800 streamclone: use read()
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Jan 2016 15:14:55 -0800] rev 27632
streamclone: use read() We have a convenience API for reading the full contents of a file. Use it.
Wed, 30 Dec 2015 16:21:57 -0700 internals: document revlog format
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 30 Dec 2015 16:21:57 -0700] rev 27631
internals: document revlog format It seems like a good idea to document the revlog format. There is a lot more that could be added to this documentation. But you have to start somewhere.
Tue, 22 Dec 2015 23:25:17 +0000 histedit: hide --outgoing warnings
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 23:25:17 +0000] rev 27630
histedit: hide --outgoing warnings
Wed, 23 Dec 2015 08:57:04 +0000 histedit: list action when intervention is required
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 08:57:04 +0000] rev 27629
histedit: list action when intervention is required
Wed, 23 Dec 2015 08:52:52 +0000 error: make InterventionRequired take a hint
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 08:52:52 +0000] rev 27628
error: make InterventionRequired take a hint
Thu, 24 Dec 2015 20:41:17 +0000 histedit: hook afterresolvedstates
timeless <timeless@mozdev.org> [Thu, 24 Dec 2015 20:41:17 +0000] rev 27627
histedit: hook afterresolvedstates
Thu, 24 Dec 2015 20:41:40 +0000 rebase: hook afterresolvedstates
timeless <timeless@mozdev.org> [Thu, 24 Dec 2015 20:41:40 +0000] rev 27626
rebase: hook afterresolvedstates
Thu, 24 Dec 2015 20:46:06 +0000 graft: hook afterresolvedstates
timeless <timeless@mozdev.org> [Thu, 24 Dec 2015 20:46:06 +0000] rev 27625
graft: hook afterresolvedstates
Thu, 24 Dec 2015 19:25:44 +0000 resolve: suggest the next action
timeless <timeless@mozdev.org> [Thu, 24 Dec 2015 19:25:44 +0000] rev 27624
resolve: suggest the next action Expose afterresolvedstates to allow graft and similar to suggest a message when resolving results in no unresolved files. If there isn't a matching state in afterresolvedstates, then if verbose, suggest commiting.
Mon, 04 Jan 2016 21:52:44 -0800 dispatch: report similar names consistently
Bryan O'Sullivan <bos@serpentine.com> [Mon, 04 Jan 2016 21:52:44 -0800] rev 27623
dispatch: report similar names consistently
Mon, 04 Jan 2016 16:14:04 -0800 cmdutil: pass node instead of ctx to diffordiffstat
Durham Goode <durham@fb.com> [Mon, 04 Jan 2016 16:14:04 -0800] rev 27622
cmdutil: pass node instead of ctx to diffordiffstat 93bcc73df8d5 changed showpatch to use ctx's more, but it accidentally passed prev as a context and node as a binary string, when both should be passed as binary strings (since diffordiffstat tries to resolve them via repo[X]). This affected hggit since the existing ctx belongs to the git overlay, but the resolved context (from the repo[X] resolution) should belong to the main repo. This broke a test because it tried to look in the git repo for data that didn't exist. This feels like a deeper issue in hggit somewhere, but the fix is here trivial and obviously more correct
Sun, 27 Dec 2015 23:37:14 +0900 import-checker: list package directory as stdlib module
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Dec 2015 23:37:14 +0900] rev 27621
import-checker: list package directory as stdlib module Before this patch, a directory containing __init__.py wasn't counted as a module and __init__.pyc was listed as foo.bar.__init__ module.
Sun, 27 Dec 2015 23:48:19 +0900 import-checker: normalize directory separator to get module name on Windows
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Dec 2015 23:48:19 +0900] rev 27620
import-checker: normalize directory separator to get module name on Windows It didn't work if a path contains "\\". Therefore, ctypes.util couldn't be found on Windows.
Sat, 02 Jan 2016 11:47:07 -0800 mail: use print function
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Jan 2016 11:47:07 -0800] rev 27619
mail: use print function We no longer use the print statement in mercurial.* \o/
Sat, 02 Jan 2016 11:45:29 -0800 lsprofcalltree: use print function
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Jan 2016 11:45:29 -0800] rev 27618
lsprofcalltree: use print function While I was here, some single element tuples have been removed in favor of the shorter syntax. Some commented lines of code containing print statements have also been removed because it was unclear what purpose they served.
Sat, 02 Jan 2016 11:40:53 -0800 lsprof: use print function
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Jan 2016 11:40:53 -0800] rev 27617
lsprof: use print function
Sun, 21 Jun 2015 23:14:54 -0700 keepalive: use print function
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 21 Jun 2015 23:14:54 -0700] rev 27616
keepalive: use print function
Sun, 21 Jun 2015 21:45:41 -0700 dispatch: use print function
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 21 Jun 2015 21:45:41 -0700] rev 27615
dispatch: use print function Python 3 doesn't have a print statement.
Fri, 01 Jan 2016 16:59:13 +0000 help: include section heading if section depth changes
timeless <timeless@mozdev.org> [Fri, 01 Jan 2016 16:59:13 +0000] rev 27614
help: include section heading if section depth changes This makes it easier to distinguish between: "format" -------- "usestore" ... Enabled by default. and "progress.format" Format of the progress bar.
Wed, 30 Dec 2015 21:07:51 +0000 import: refactor nocommit and importbranch handling
timeless <timeless@mozdev.org> [Wed, 30 Dec 2015 21:07:51 +0000] rev 27613
import: refactor nocommit and importbranch handling
Wed, 30 Dec 2015 21:06:31 +0000 import: refactor date and user handling
timeless <timeless@mozdev.org> [Wed, 30 Dec 2015 21:06:31 +0000] rev 27612
import: refactor date and user handling
Wed, 30 Dec 2015 21:05:42 +0000 import: limit scope of msg in tryimportone
timeless <timeless@mozdev.org> [Wed, 30 Dec 2015 21:05:42 +0000] rev 27611
import: limit scope of msg in tryimportone
Sat, 02 Jan 2016 02:13:56 +0100 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 02 Jan 2016 02:13:56 +0100] rev 27610
merge with stable
Thu, 31 Dec 2015 13:45:48 -0500 lazymanifest: check error return in filter
Augie Fackler <raf@durin42.com> [Thu, 31 Dec 2015 13:45:48 -0500] rev 27609
lazymanifest: check error return in filter
Thu, 31 Dec 2015 13:44:59 -0500 lazymanifest: add missing closing parenthesis in comment
Augie Fackler <raf@durin42.com> [Thu, 31 Dec 2015 13:44:59 -0500] rev 27608
lazymanifest: add missing closing parenthesis in comment
Wed, 30 Dec 2015 17:10:56 +0000 help: rename the Format section to Structure
timeless <timeless@mozdev.org> [Wed, 30 Dec 2015 17:10:56 +0000] rev 27607
help: rename the Format section to Structure This reduces the confusion from `hg help config.format` which deals with repository format. (But also profiling.format, and progress.format)
Wed, 30 Dec 2015 17:04:08 +0000 help: refactor version/defaults from format section
timeless <timeless@mozdev.org> [Wed, 30 Dec 2015 17:04:08 +0000] rev 27606
help: refactor version/defaults from format section The old messages implied that disabling a single setting would ensure compatibility, but if you disabled one of the older flags, and left a newer flag, that would not actually do what the docs say.
Wed, 30 Dec 2015 17:06:11 +0000 help: sort format section from newest to oldest
timeless <timeless@mozdev.org> [Wed, 30 Dec 2015 17:06:11 +0000] rev 27605
help: sort format section from newest to oldest
Wed, 30 Dec 2015 04:04:51 +0000 histedit: fix comment in newnodestoabort
timeless <timeless@mozdev.org> [Wed, 30 Dec 2015 04:04:51 +0000] rev 27604
histedit: fix comment in newnodestoabort
Wed, 30 Dec 2015 04:02:04 +0000 histedit: fix comment in applychanges
timeless <timeless@mozdev.org> [Wed, 30 Dec 2015 04:02:04 +0000] rev 27603
histedit: fix comment in applychanges
Tue, 29 Dec 2015 04:30:38 +0000 run-tests: fix get port to try differing ports
timeless <timeless@mozdev.org> [Tue, 29 Dec 2015 04:30:38 +0000] rev 27602
run-tests: fix get port to try differing ports The code was moving its offset each time through the loop, but because it failed to update port, the port was not going to be available...
Thu, 31 Dec 2015 13:19:20 -0500 httpclient: update to 938f2107d6e2 of httpplus
Augie Fackler <augie@google.com> [Thu, 31 Dec 2015 13:19:20 -0500] rev 27601
httpclient: update to 938f2107d6e2 of httpplus This enhances proxy support in httpclient a little bit, though I don't know that we used that functionality at all. It also switches httpplus to using absolute_import.
Thu, 31 Dec 2015 15:39:38 +0000 histedit: remove unused variable state
timeless <timeless@mozdev.org> [Thu, 31 Dec 2015 15:39:38 +0000] rev 27600
histedit: remove unused variable state
Wed, 23 Dec 2015 12:51:45 -0800 filemerge: default change/delete conflicts to 'leave unresolved' (BC)
Siddharth Agarwal <sid0@fb.com> [Wed, 23 Dec 2015 12:51:45 -0800] rev 27599
filemerge: default change/delete conflicts to 'leave unresolved' (BC) It makes far more sense to leave these conflicts unresolved and kick back to the user than to just assume that the local version be chosen. There are almost certainly buggy scripts and applications using Mercurial in the wild that do merges or rebases non-interactively, and then assume that if the operation succeeded there's nothing the user needs to pay attention to. (This wasn't possible earlier because there was no way to re-resolve change/delete conflicts -- but now it is.)
Wed, 23 Dec 2015 12:41:20 -0800 tests: explicitly request changed version in test-rebase-newancestor.t
Siddharth Agarwal <sid0@fb.com> [Wed, 23 Dec 2015 12:41:20 -0800] rev 27598
tests: explicitly request changed version in test-rebase-newancestor.t We're going to change the default for this in an upcoming patch, but in this instance we do want to continue picking the changed version.
Wed, 23 Dec 2015 12:41:20 -0800 tests: explicitly request changed version in c/d conflict in test-commit-amend.t
Siddharth Agarwal <sid0@fb.com> [Wed, 23 Dec 2015 12:41:20 -0800] rev 27597
tests: explicitly request changed version in c/d conflict in test-commit-amend.t We're going to change the default for this in an upcoming patch, but in this instance we do want to continue picking the changed version.
Wed, 23 Dec 2015 12:41:20 -0800 test-copy-move-merge.t: explicitly request changed version
Siddharth Agarwal <sid0@fb.com> [Wed, 23 Dec 2015 12:41:20 -0800] rev 27596
test-copy-move-merge.t: explicitly request changed version We're going to change the default for this in an upcoming patch, but in this instance we do want to continue picking the changed version.
Sat, 26 Dec 2015 19:40:38 -0800 match: add option to return line and lineno from readpattern
Laurent Charignon <lcharignon@fb.com> [Sat, 26 Dec 2015 19:40:38 -0800] rev 27595
match: add option to return line and lineno from readpattern This will be used to display the line and linenumber of ignorefile that matched an ignored file (issue4856).
Wed, 23 Dec 2015 11:52:54 -0800 dirstate: extract logic to compute the list of ignorefiles
Laurent Charignon <lcharignon@fb.com> [Wed, 23 Dec 2015 11:52:54 -0800] rev 27594
dirstate: extract logic to compute the list of ignorefiles We are going to reuse this logic to improve debugignore in the next patches of the series.
Wed, 23 Dec 2015 13:16:03 -0800 dirstate: call the C implementation of nonnonormalentries when available
Laurent Charignon <lcharignon@fb.com> [Wed, 23 Dec 2015 13:16:03 -0800] rev 27593
dirstate: call the C implementation of nonnonormalentries when available Before this patch, we were using python code for computing the nonnormal dirstate entries. This patch makes us use the C implementation of the function when it is available. Using the nonnormal set in hgwatchman improves hg status performance. Below are the numbers for mozilla-central. with the changes: $ hg perfstatus ! wall 0.010632 comb 0.000000 user 0.000000 sys 0.000000 (best of 246) without the changes: $ hg perfstatus ! wall 0.036442 comb 0.030000 user 0.030000 sys 0.000000 (best of 100) On mozilla-central the improvement to hg status is ~20% (0.25s to 0.2s), on our big repos at Facebook, the win is ~40% (1.2s to 0.72s).
Mon, 21 Dec 2015 16:27:16 -0800 dirstate: add a C implementation for nonnormalentries
Laurent Charignon <lcharignon@fb.com> [Mon, 21 Dec 2015 16:27:16 -0800] rev 27592
dirstate: add a C implementation for nonnormalentries Before this patch, there was only a python version of nonnormalentries. On mozilla-central we have a 10x win by putting this function in C: % python -m timeit -s \ 'from mercurial import hg, ui, parsers; \ repo = hg.repository(ui.ui(), "mozilla-central"); \ m = repo.dirstate._map' \ 'parsers.nonnormalentries(m)' 100 loops, best of 3: 3.15 msec per loop The python implementation runs in 31ms, a similar test gives: 10 loops, best of 3: 31.7 msec per loop On our big repos, the win is still of 10x with the python implementation running in 350ms and the C implementation running in 30ms.
Mon, 21 Dec 2015 16:26:44 -0800 dirstate: add test for non-normal set consistency
Laurent Charignon <lcharignon@fb.com> [Mon, 21 Dec 2015 16:26:44 -0800] rev 27591
dirstate: add test for non-normal set consistency This adds a test extension to check that the non-normal set contains the expected entries. It wraps several methods of the dirstate to check that the non-normal set has the correct values before and after the call. The extension lives in contrib so that paranoid developers can easily enable it to make sure that the non-normal set is consistent across more complex operations than the included tests.
Fri, 01 Jan 2016 23:40:54 +0100 dirstate: add code to update the non-normal set
Laurent Charignon <lcharignon@fb.com> [Fri, 01 Jan 2016 23:40:54 +0100] rev 27590
dirstate: add code to update the non-normal set Before this patch, we were only populating the non-normal set when parsing or packing the dirstate. This was not enough to keep the non-normal set up to date at all time as we don't write and read the dirstate whenever a change happens. This patch solves this issue by updating the non-normal set when it should be updated. note: pack_dirstate changes the dmap and we have it keep it unchanged for retrocompatibility so we are forced to recompute the non-normal set after calling it.
Wed, 23 Dec 2015 13:13:22 -0800 dirstate: attach the nonnormalset to a propertycache
Laurent Charignon <lcharignon@fb.com> [Wed, 23 Dec 2015 13:13:22 -0800] rev 27589
dirstate: attach the nonnormalset to a propertycache This patch attaches the nonnormalset to a property cache so that we build it only when needed.
Mon, 21 Dec 2015 16:22:43 -0800 dirstate: add a function to compute non-normal entries from the dmap
Laurent Charignon <lcharignon@fb.com> [Mon, 21 Dec 2015 16:22:43 -0800] rev 27588
dirstate: add a function to compute non-normal entries from the dmap This patch adds a new python function in the dirstate to compute the set of non-normal files from the dmap. These files are useful to compute the repository status.
Tue, 29 Dec 2015 23:58:30 +0900 revset: use decorator to mark a predicate as safe
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Dec 2015 23:58:30 +0900] rev 27587
revset: use decorator to mark a predicate as safe Using decorator can localize changes for adding (or removing) a "safe" revset predicate function in source code. To avoid accidentaly treating unsuitable predicates as safe, this patch uses False as default value of "safe" argument. This forces safe predicates to be decorated with explicit 'safe=True'.
Tue, 29 Dec 2015 23:58:30 +0900 revset: use delayregistrar to register predicate in extension easily
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Dec 2015 23:58:30 +0900] rev 27586
revset: use delayregistrar to register predicate in extension easily Previous patch introduced 'revset.predicate' decorator to register revset predicate function easily. But it shouldn't be used in extension directly, because it registers specified function immediately. Registration itself can't be restored, even if extension loading fails after that. Therefore, registration should be delayed until 'uisetup()' or so. This patch uses 'extpredicate' decorator derived from 'delayregistrar' to register predicate in extension easily. This patch also tests whether 'registrar.delayregistrar' avoids function registration if 'setup()' isn't invoked on it, because 'extpredicate' is the first user of it.
Tue, 29 Dec 2015 23:58:30 +0900 registrar: add delayregistrar class to register function in extensions
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Dec 2015 23:58:30 +0900] rev 27585
registrar: add delayregistrar class to register function in extensions 'delayregistrar' delays actual registration of function until 'setup()' invocation on it.
Tue, 29 Dec 2015 23:58:30 +0900 revset: use decorator to register a function as revset predicate
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Dec 2015 23:58:30 +0900] rev 27584
revset: use decorator to register a function as revset predicate Using decorator can localize changes for adding (or removing) a revset predicate function in source code. It is also useful to pick predicates up for specific purpose. For example, subsequent patch marks predicates as "safe" by decorator. This patch defines 'parsefuncdecl()' in 'funcregistrar' class, because this implementation can be uesd by other decorator class for fileset predicate and template function.
(0) -10000 -3000 -1000 -240 +240 +1000 +3000 +10000 tip