The case
$ hg clone a ''
already aborted before c1e68cd8cfa8, whereas
$ hg clone --pull a ''
tripped the fixed issue2528.
Both basic cases are expected to fail with an abort.
If MQ allows modifying .hgsub or .hgsubstate in a patch, it can easily
lead to an inconsistent subrepo state. This patch prevents qrefresh from
adding any modifications to .hgsub or .hgsubstate to a patch. The user
is warned that these files are not included in the patch.
The tests test both the slightly irrational and the pathological cases.
Regression from 9f0026001bfd. That previous commit is not supposed
to affect log calls without --follow, so we step out of this
codepath if follow is not True, and it's enough to fix the
regression.
When --follow is given, we fix the issue by taking into account
changesets that have a rev > maxrev to build the filegraph: even if
those files are not included in the final result, it's still needed
to walk correctly the graph from the end of the filelog to minrev, to
track accurately renames.
While this situation should never under normal use, some real
life repos sometimes contain such changesets (older hg versions,
broken rebases, etc...)
hgweb was displaying an "Internal error" in this case, and graphlog
displayed a redundant branch all the way to null: it does not cost us
much to just ignore this extra parent when constructing the DAG.
We were not returning the correct result if nullrev was in revs, as we
are checking parent(currentrev) != nullrev before yielding currentrev
test-convert-hg-startrev was wrong: if we start converting from rev -1 and
onwards, all the descendants of -1 (full repo) should be converted.
This makes test output less ambiguous.
Failing test output will be escaped and marked up if necessary. A Python
string-escape compatible encoding is used, but not everything is encoded -
especially not \n and \t and '.
Output chunks without a trailing LF will now work but get (no-eol) appended.
This change mostly moves code around so we can handle that an output line
starts with data from previous command, followed by salt and the next command.
203ffed27f86 made this simple test-test.t succeed silently:
$ printf ' $ true' > test-test.t
but did not give a usable .err in this case:
$ printf ' $ false' > test-test.t
The missing LF will now be fixed in the test output and it will thus give a
test failure and a solution in the .err file.
This prevents spurious errors when a changeset hash happens to match
the port number. Before, this invocation gave a test failure:
$ ./run-tests.py test-log.t --port 24427
ERROR: /home/mg/src/mercurial-crew/tests/test-log.t output changed
--- /home/mg/src/mercurial-crew/tests/test-log.t
+++ /home/mg/src/mercurial-crew/tests/test-log.t.err
@@ -626,12 +626,12 @@
$ hg log -b default
changeset: 2:c3a4f03cc9a7
- parent: 0:24427303d56f
+ parent: 0:$HGPORT303d56f
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commit on default
...
The current implementation of colwidth was treating 'A'mbiguous
characters as wide, which was incorrect in a non-East Asian context.
As per http://unicode.org/reports/tr11/#Recommendations, we should
instead default to 'narrow' if we don't know better. As character
width is dependent on the particular font used and we have no idea
what fonts are in use, this recommendation applies.
This introduces HGENCODINGAMBIGUOUS to get the old behavior back.
The test sometimes failed because f4.bat wasn't dirty. I'm not sure whether it
should or shouldn't be dirty, but the extension is broken and deprecated and we
just want to see the deprecation warning, so now we just avoid showing the
dirtyness.
When issuing `hg pull -r REV` in a repo with no common ancestor with the
remote repo, the message 'requesting all changes' is printed, even though only
the changese that are ancestors of REV are actually requested. This can be
confusing for users (see
http://www.selenic.com/pipermail/mercurial/2010-October/035508.html).
This silences the message if (and only if) the '-r' option was passed.
- dirstate of overwritten files must be forced to normal
with kwexpand/kwshrink, not commit.
- recorded files must be weeded before overwriting.
- add test cases.