This fixes a bug seen when merging a main repo which contains a subrepo when
both repos have been merged before. Each repo (main and sub) has two
branches, both of which have been merged before.
In a subrepo, if the revision to merge to is an ancestor of the current rev,
then the merge should be a noop.
Test provided by Steve Losh.
If applydiff() raises an exception, the opened patch file is kept alive in the
exception context. If it is a temporary file (for instance supplied by import
command with stdin input), Windows cannot clean it up.
For binary installs, the 'name' argument would be reused as a local variable,
destroying its original value. The patch fixes that, and also avoids copying
sys.path when it's not necessary.
Displaying the output from the failing call to "which" didn't prevent
make from doing stupid things later. We now only search for "rst2html"
and fallback to "rst2html.py". If neither name is found, make will
eventually abort when we try to use $(RST2HTML).
Limit was interpreted as absolute, from the topmost revision, without
counting the number of revisions matching a given file.
Which caused "glog -lN file" to show sometimes less than N csets if
the file was not modified in all of the N previous csets.
glog will now match the behavior of log.
The built-in patch implementation applied the hunks to the wrong lines of the
file if the file in the repo has been modified to skew the patch line numbers
and the file contains repetitive sequences of lines.
Though we only support Python 2.4 or greater, we should keep setup.py
compatible with earlier versions on the syntactic level. Otherwise
people will simply get a SyntaxError when trying to install Mercurial
with an old version of Python. With this change, the setup.py file can
be imported with Python 2.3 and we then issue a friendly error message
when we detect that Python is too old.
The example for enabling an extension in the module search path is:
foo =
foo can only be disabled by:
foo = !
and not by:
hgext.foo = !
As the examples now omit "hgext." the example
hgext.bar = !
is misleading.
Otherwise when processing a changeset that in fact changes no files
(perhaps due to bug in import from CVS) can get something like:
unexpected svn output:
abort: unable to cope with svn output
Bug report and patch draft by Jesse Glick <jesse.glick@sun.com>
We need to do this to avoid file/directories conflicts.
This causes patches removing a committed file and replacing it
with a directory to be "unpoppable".