Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:54:12 +0100] rev 20412
shelve: be quiet when unshelve pulls from the shelve bundle
unshelve was quite verbose and it was hard for a user to follow what really was
going on. It ended up saying 'added 1 changesets' ... but the user just
expected and got pending changes and never saw any changeset.
The use of bundles is an implementation detail that we don't have to leak here.
Pulling is quite verbose, optimized for pulling many changesets from remote
repos - that is not the case here.
Instead, set the quiet flag when pulling the bundle - not only when temporarily
committing pending changes.
The 'finally' restore of ui.quiet is moved to the outer try/finally used for
locking.
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:53:27 +0100] rev 20411
shelve: add 'changes to' prefix to default shelve message
The shelved changes _could_ perhaps be amended to the parent changeset but it
_is_ not the parent changeset. Using the description from the parent changeset
is thus wrong and confusing.
Instead, add a 'changes to' prefix.
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:53:27 +0100] rev 20410
shelve: mention FILE options in help
Shelve do normally take a list of files or patterns to shelve and the command
summary should thus show [FILE]...
Note: --delete is a bit special and interpret the parameters as a list of
shelve names. This change makes that even less obvious from the help. Too bad
- we can't please everyone.
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:53:25 +0100] rev 20409
shelve: mention walk options in help
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:52:56 +0100] rev 20408
shelve: really pass publicancestors to changegroupsubset - not the parents
publicancestors returned the parents of the public ancestors ... and
changegroupsubset used the parents of these as base for the bundle. That gave
bundles with one layer of changesets more than necessary.
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:52:46 +0100] rev 20407
shelve: publicancestors do not have to visit nullrev
Not visiting nullrev seems more correct and might be a minor optimization.
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:52:16 +0100] rev 20406
localrepo: make it clear that changegroupsubset doesn't take bases but roots
changegroupsubset will take the parents of the roots to find the bases.
Other parts of Mercurial do not expect that, and a result of that is that some
bundles contain more changesets than necessary.
No real changes here - just renaming a parameter to document what it is.
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 17:13:45 -0500] rev 20405
repoview: use repo.revs() instead of a private revset method
Breaks an import cycle.
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 14:55:04 -0500] rev 20404
commands: use ctx.getfileset instead of fileset.getfileset
Matt Mackall <mpm@selenic.com> [Sun, 09 Feb 2014 17:31:26 -0600] rev 20403
push: backout
2bc520bd0ce0 due to test failures
Matt Mackall <mpm@selenic.com> [Sun, 09 Feb 2014 17:30:49 -0600] rev 20402
mq: fix qimport url check
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 14:54:42 -0500] rev 20401
match: use ctx.getfileset() instead of fileset.getfileset()
Resolves an import cycle involving match and merge.
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 15:27:49 -0500] rev 20400
context: add a getfileset() method so fewer things need fileset directly
Allows me to break an import cycle in a subsequent change.
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 18:09:20 -0500] rev 20399
fix_bytesmod: fix defects in fix_bytesmod so it produces working code
Prior to this change, the fixer did not always add the py3kcompat
import to files, and did not manage to blacklist itself.
Mads Kiilerich <madski@unity3d.com> [Thu, 06 Feb 2014 02:19:38 +0100] rev 20398
discovery: improve "note: unsynced remote changes!" warning
This note (which actually is a warning) frequently caused confusion.
"unsynced" is not a well established user-facing concept in Mercurial and the
message was not very specific or helpful.
Instead, show a messages like:
remote has heads on branch 'default' that are not known locally:
6c0482d977a3
and show it before aborting on "push creates new remote head". This will also
give more of a hint in the case where the branch has been closed remotely and
'hg heads' thus not would show any new heads after pulling.
A similar (but actually very different) message was addressed in
6b618aa08b6e.
Mads Kiilerich <madski@unity3d.com> [Fri, 07 Feb 2014 17:26:28 +0100] rev 20397
convert: drop unused getheads from sinks
Simon Heimberg <simohe@besonet.ch> [Sat, 08 Feb 2014 10:41:17 +0100] rev 20396
tests: on windows, run command explicitly in sh for working command substitution
On windows, os.system runs the command in cmd.exe, which does not know command
substitution. To let this work, run the command explicitly in sh.
This fixes the failure of this test on windows.
Simon Heimberg <simohe@besonet.ch> [Tue, 28 Jan 2014 00:33:52 +0100] rev 20395
tests: test-module-imports.t works on windows (with backslash path sep)
Transform the backslashes to slashes on windows, because they are eaten up by
the shell. (Similar as done in test-check-pyflakes.t.)
This test will not produce a traceback on windows anymore. But the test still
fails because the detected mixed imports differ.
Matt Mackall <mpm@selenic.com> [Fri, 07 Feb 2014 17:54:10 -0600] rev 20394
qimport: allow importing URLs
Lucas Moscovicz <lmoscovicz@fb.com> [Fri, 07 Feb 2014 15:01:33 -0800] rev 20393
revset: fixed bug where revset returning order was being changed
Some revsets were innecesarily turning the subset into a set before iterating
over it. This led to returning order changing in some cases.
Augie Fackler <raf@durin42.com> [Mon, 03 Feb 2014 18:36:00 -0500] rev 20392
itersubrepos: move to scmutil to break a direct import cycle
Mads Kiilerich <madski@unity3d.com> [Fri, 07 Feb 2014 02:59:46 +0100] rev 20391
import-checker: handle standard modules with arch in the filename
Installations with module names like
/usr/lib/python2.7/lib-dynload/bz2.x86_64-linux-gnu.so occurs in the wild.
Let's just ignore everything after first '.' when guessing the Python module
name.
Simon Heimberg <simohe@besonet.ch> [Mon, 03 Feb 2014 20:08:58 +0100] rev 20390
tests: use ls instead of find, all files are in the same directory
In this case find has no advantage compared to ls. Descending into directories
is unnecessary, because there are none.
Simon Heimberg <simohe@besonet.ch> [Mon, 27 Jan 2014 11:17:07 +0100] rev 20389
commands: hg debuginstall checks missing templates (
issue4151)
Missing templates where not reported as a problem, only an empty bracket
were shown as indication of no found template directory:
$ hg debuginstall
*...some lines*
checking templates ()...
*...some lines*
no problems detected
Now the problem is reported and extended with some information. The style
of the messages is adapted to the other messages of debuginstall.
When no templates directories exist, it writes:
$ hg debuginstall
*...some lines*
checking templates ()...
no template directories found
(templates seem to have been installed incorrectly)
*...some lines*
1 problems detected, please check your install!
When the template map is not found, it writes:
$ hg debuginstall
*...some lines*
checking templates (/path/to/mercurial/templates)...
template 'default' not found
(templates seem to have been installed incorrectly)
*...some lines*
1 problems detected, please check your install!
When the template map is buggy the message is the same as before. The error
message is shown before the line "(templates seem ...)".
No test is added because testing this failure is complicated. It would
require to modify the templates directory of the mercurial installation,
or to monkey patch a function (os.listdir or any from mercurial.templater)
by a test extension.
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Feb 2013 00:11:45 +0100] rev 20388
contrib/Makefile.python: build local Python from source
This provides an easy way to install new or old Python versions on Unixish
systems. It is mainly intended for testing Mercurial with different Python
versions.
Example:
$ cd build
$ make -f ../contrib/Makefile.python python PYTHONVER=2.4 PREFIX=/tmp/p24
$ /tmp/p24/bin/python -V
Python 2.4
Tested on Fedora, Debian and Ubuntu with Python versions from 2.4 to 2.7.6.
Most Python versions need some workarounds to compile on Debian-ish systems.
The workarounds do not do any significant harm on Fedora.
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:45:59 +0100] rev 20387
tests: use small conditional section for tic requirement in test-status-color.t
Better test coverage when curses not is available.
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:43:51 +0100] rev 20386
import-checker: show stdlib and relative imports separately
Make the output more useful for debugging problems.
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:41:36 +0100] rev 20385
tests: improved test coverage for HTTP authentication and 401 responses
Dump the access log to verify that the client gets the 401s it deserves and
handles them correctly. This establishes a baseline for Basic authentication
protocol.
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:37:37 +0100] rev 20384
tests: ignore http tests that are known wontfix failures on python 2.4
As mentioned on http://bz.selenic.com/show_bug.cgi?id=2739#c17 ,
b3083042bdda
left test-http.t failing on Python < 2.4.3. That has not been noticed because
most 2.4 testing has been done with a patched 2.4.2.
This makes sure that the tests only are run for Python >= 2.4.3. That makes it
possible to verify that everything else works with Python 2.4.
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:30:33 +0100] rev 20383
import-checker: fix names of dynamically loaded modules
The import checker found standard library modules such as
lib-dynload/zlibmodule.so but saw that as a 'zlibmodule' module, not as the
'zlib' module.
Debian ships Python with most modules built-in and this incorrect handling of
dynamic modules did thus not cause problems on that platform.
Fedora ships Python with as many modules as possible loaded dynamically. That
made the import checker tests fail with incorrect classification of the
following modules: array fcntl grp itertools time zlib.
This change makes test-module-imports.t pass on Fedora.
Simon Heimberg <simohe@besonet.ch> [Tue, 28 Jan 2014 02:23:48 +0100] rev 20382
tests: for consistent output flush between writing sterr and stdout
Because stdout and stderr are buffered, the order of the output is other way
around on some systems.
Mads Kiilerich <madski@unity3d.com> [Thu, 06 Feb 2014 02:17:48 +0100] rev 20381
discovery: cleanup of variable names and comments
Mads Kiilerich <madski@unity3d.com> [Thu, 06 Feb 2014 01:55:09 +0100] rev 20380
localrepo: give a sigh of relief when getting lock after waiting for it
A message like this was sometimes shown when pushing:
remote: waiting for lock on repository foo held by 'mercurial:20858'
That could scare users, making them wonder whether the push actually succeeded.
To mitigate that fear, issue an additional "warning" such as:
got lock after 2 seconds
The return value from lock.lock.lock() was unused - instead we return the
delay.
This also adds the first test coverage for waiting for locks.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 22 Jan 2014 15:43:21 -0600] rev 20379
convert: add tagmap option
Tests have been updated.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 22 Jan 2014 15:40:17 -0600] rev 20378
convert: add tagmap logic
Previously, there was no way to rewrite tags on the fly while converting. Now,
we add similar logic to branchmap to provide a way to map old tags to new tags.
Currently, this is not enabled since there is not yet a command-line option.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 22 Jan 2014 15:31:24 -0600] rev 20377
convert: avoid updating tags when there is nothing new
Previously, when converting from a mercurial repo there would be an extraneous
commit at the end of the convert process that would rewrite tags. Now, we check
if there are any new tags before doing this rewriting.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 22 Jan 2014 17:38:05 -0600] rev 20376
convert: compare tags from all heads instead of just one
Previously, the hg sink for puttags would just use one head for getting the old
tags which would sometimes lead to tags disappearing. Now, we iterate over all
heads and merge the results.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 21 Jan 2014 11:35:17 -0600] rev 20375
convert: add closemap option
Tests have been updated.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 21 Jan 2014 11:20:14 -0600] rev 20374
convert: add parseclosemap method
This is a copy of the parsesplicemap method and will serve as a way to specify
which changesets to close while converting.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 21 Jan 2014 11:34:55 -0600] rev 20373
convert: add mapname parameter to checkrevformat
Upcoming patches will add new map files so we change the calling sequence of
checkrevformat so that error messages will let the user know which file has the
wrong rev format.
Sean Farley <sean.michael.farley@gmail.com> [Thu, 18 Apr 2013 10:05:50 -0500] rev 20372
convert: replace old sha1s in the description
This is a simple find-and-replace strategy for matching anything in the
old description of a converted commit and, if that matched sha1 exists
in the mapping, replacing it with the new sha1.
In particular, this is helpful for descriptions that contain tags with
messages such as, "Added tag 1.0 for commit
abcde1234567" which will now
be automatically converted.
Tests have been updated accordingly.
Durham Goode <durham@fb.com> [Wed, 05 Feb 2014 20:22:28 -0800] rev 20371
template: fix shortest(node) function in pure mercurial
Pure mercurial (i.e. without c extensions) does not support partialmatch() on
the revlog index, so we must fall back to use revlog._partialmatch() to handle
that case for us. The tests caught this.
We don't use revlog._partialmatch() for the normal case because it performs a
very expensive index iteration when the string being tested fails to find a
unique result via index.partialmatch(). It does this in order to filter
out hidden revs in hopes of the string being unique amongst non-hidden revs.
For the shortest(node) case, we'd prefer performance over worrying about
hidden revs.
Durham Goode <durham@fb.com> [Fri, 17 Jan 2014 00:16:48 -0800] rev 20370
template: add pad function for padding output
Adds a pad template function with the following signature:
pad(text, width, fillchar=' ', right=False)
This uses the standard python ljust and rjust functions to produce a string
that is at least a certain width. This is useful for aligning variable length
strings in log output (like user names or shortest(node) output).
Durham Goode <durham@fb.com> [Fri, 17 Jan 2014 00:10:37 -0800] rev 20369
template: add shortest(node) template function
Adds a '{shortest(node)}' template function that results in the shortest hex node
that uniquely identifies the changeset at that time. The minimum length can be
specified as an optional second argument and defaults to 4.
This is useful for producing prettier log output, like so:
@ durham shortestnode
| 77cf template: add pad function for padding output
|
o durham
| b183 template: add shortestnode keyword
|
o pierre-yves @
| 6545 backout: add a message after backout that need manual commit
|
| o durham manifestcache
|/ 93f0 manifest cache
|
| o durham catperf
| | c765 cat: increase perf when catting single files
| |
| o durham
|/ 9c53 changectx: increase perf of walk function
|
Matt Mackall <mpm@selenic.com> [Wed, 05 Feb 2014 18:09:07 -0600] rev 20368
merge with stable
Lucas Moscovicz <lmoscovicz@fb.com> [Fri, 24 Jan 2014 16:57:44 -0800] rev 20367
revset: added intersection to baseset class
Added the method __and__ to the baseset class to be able to intersect with
other objects in a more efficient way.
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 23 Jan 2014 14:20:58 -0800] rev 20366
revset: added substraction to baseset class
Added __sub__ method to the baseset class to be able to compare it with other
subsets more efficiently.
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 22 Jan 2014 10:46:02 -0800] rev 20365
revset: implemented set caching for revset evaluation
Added set caching to the baseset class. It lazily builds the set whenever it's
needed and keeps a reference which is returned when the set is requested
instead of being built again.
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 21 Jan 2014 11:39:26 -0800] rev 20364
revset: added baseset class (still empty) to improve revset performance
This class is going to be used to cache the set that is created from this list
in many cases while evaluating a revset.
Simon Heimberg <simohe@besonet.ch> [Mon, 03 Feb 2014 21:34:13 +0100] rev 20363
i18n: leave out entries which contain only rst syntax
This prevents the danger of translating entries like the following ones:
.. container:: verbose
.. input:: filename1.txt
Simon Heimberg <simohe@besonet.ch> [Mon, 03 Feb 2014 21:33:48 +0100] rev 20362
i18n: leave out entries which contain only a rst directive
This prevents the danger of translating entries like ".. note::"
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 20:24:33 +0100] rev 20361
i18n: posplit removes the entry "::" from the pot file
We do not gain anything by allowing to translate it.
Simon Heimberg <simohe@besonet.ch> [Wed, 29 Jan 2014 16:47:00 +0100] rev 20360
i18n-de: update po file for showing the effect of changed posplit
Simon Heimberg <simohe@besonet.ch> [Mon, 03 Feb 2014 21:31:35 +0100] rev 20359
i18n: posplit writes a warning for translators before rst directives
rst directives like this one have been translated:
.. note::
To help the translator include a comment before such messages.
An entry containing a rst directive now looks like this:
#. do not translate: .. note::
#: path/to/file:75
msgid = ".. note:: to think about"
msgstr = ...
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 20:16:14 +0100] rev 20358
Makefile: hg.pot depends on the scripts generating it
This is convenient when editing this scripts. And translators will get updated
translation files even if nothing else has changed.
Matt Mackall <mpm@selenic.com> [Wed, 05 Feb 2014 17:23:35 -0600] rev 20357
hgweb: hack around mimetypes encoding thinko (
issue4160)
A correct patch for this has existed in Python's BTS for 3 years
(http://bugs.python.org/
issue9291), so waiting for it to be fixed
upstream is probably not a viable strategy. Instead, we add this
horrible hack to workaround the issue in existing copies of Python
2.4-2.7.
Matt Mackall <mpm@selenic.com> [Mon, 03 Feb 2014 18:09:08 -0600] rev 20356
merge with stable
Siddharth Agarwal <sid0@fb.com> [Mon, 03 Feb 2014 14:36:20 -0800] rev 20355
hg: note that islocal only accepts paths pointing to repos
hg.islocal doesn't work for paths pointing to non-repos, such as patch files.
Siddharth Agarwal <sid0@fb.com> [Mon, 03 Feb 2014 14:53:44 -0800] rev 20354
hg.openpath: use url.islocal to tell if the path is local (
issue3624)
Previously we used hg.islocal, which doesn't work for paths pointing to
non-repos, such as patch files.
Siddharth Agarwal <sid0@fb.com> [Mon, 03 Feb 2014 14:47:41 -0800] rev 20353
util.url: add an 'islocal' method
This returns True if the URL represents a path that can be opened locally,
without needing to go through the entire URL open mechanism.