Patrick Mezard <patrick@mezard.eu> [Wed, 04 Apr 2012 15:59:56 +0200] rev 16369
hghave: remove symlink test made useless by
ac0da5caebec
Julien Cristau <julien.cristau@logilab.fr> [Wed, 04 Apr 2012 13:55:11 +0200] rev 16368
tests: disable progress estimate in test-debugbuilddag.t
If the command takes long enough, including 'estimate' in the format
will add some more data to the progress bar output, and make the test
fail. See e.g.
https://buildd.debian.org/status/fetch.php?pkg=mercurial&arch=kfreebsd-amd64&ver=2.1.2-2&stamp=
1333493711
Kevin Bullock <kbullock@ringworld.org> [Wed, 04 Apr 2012 12:46:54 -0500] rev 16367
ui: swallow EBADF on stderr
ui.write_err already swallows EPIPE and EIO if a write to stderr fails.
On Mac OS X at least, a write to a closed file descriptor results in
EBADF. Before this patch, hg would exit with status 1 if a write to
stderr failed during startup (e.g. while trying to print a warning about
not finding an extension):
$ ./hg --config extensions.foo= version 2>&-; echo $?
1
With this patch, it correctly swallows stderr and continues to run the
command:
$ ./hg --config extensions.foo= version 2>&-
Mercurial Distributed SCM (version 2.1)
...
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 05 Apr 2012 23:52:55 +0900] rev 16366
mq: use list of already known target files instead of matching object for diff
'hg qnew' passes matching object to 'patch.diff()' to specify target
filenames, and it causes 'dirstate.walk()' via 'repo.status()' in
'patch.diff()'.
but target files are already known before 'patch.diff()' invocation.
to avoid useless 'dirstate.walk()' invocation, this patch uses
'changes' argument to pass already known target files to
'patch.diff()' instead of 'match' argument.
'changes' argument of 'patch.diff()' should have lists for modified,
added and removed files separately, so this patch saves status of
'.hgsubstate' before commit, and put it into appropriate list in
'changes'.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 05 Apr 2012 23:52:06 +0900] rev 16365
mq: use exact matching in the second dirstate walking for efficiency of 'qnew'
'hg qnew' with pattern/-I/-X creates matching object with them, and
uses it twice for 'dirstate.walk()': via 'repo.status()' and
'repo.commit()'.
this may cause full manifest scan in the second 'dirstate.walk()',
even though mq already knows complete target filenames at the first
'dirstate.walk()'.
this patch creates exact matching object also in this case, and use it
at 'repo.commit()' invocation to avoid full manifest scan in the
second 'dirstate.walk()'.
even though 'inclsubs' is added to 'pats' for original matching
object, it is also passed to exact matching object, because
subrepositories are deleted from result of 'dirstate.walk()' at the
end of it.
Jim Hague <jim.hague@acm.org> [Thu, 05 Apr 2012 12:31:21 +0100] rev 16364
tests: avoid test-hup hanging on AIX
test-hup hangs on AIX. Under ksh89 on AIX (the default shell),
echo Hello; while [ ! -s not-there ]; do true; done
produces no output while the loop executes. Replacing 'true' with 'sleep 0'
fixes, as does using a less broken shell. ksh93 is fine.
Update check-code.py to look for this, and make same change in test-serve.t.
In fact test-serve works fine, probably because of additional commands between
echo and the loop, but that's a subtlety not easy to test for.
Bryan O'Sullivan <bryano@fb.com> [Thu, 05 Apr 2012 13:00:35 -0700] rev 16363
parsers: incrementally parse the revlog index in C
We only parse entries in a revlog index file when they are actually
needed, and cache them when first requested.
This makes a huge difference to performance on large revlogs when
accessing the tip revision or performing a handful of numeric lookups
(very common cases). For instance, "hg --time tip --template {node}"
on a tree with 300,000 revs takes 0.15 before, 0.02 after.
Even for revlog-intensive operations (e.g. running "hg log" to
completion), the lazy approach is about 1% faster than the eager
parse_index2.
Patrick Mezard <patrick@mezard.eu> [Thu, 05 Apr 2012 15:39:07 +0200] rev 16362
mdiff: fix diff header generation for files with spaces (
issue3357)
diff ---/+++ should end filenames with a TAB when they contain spaces. Current
code failed to do so when only the +++ file had spaces. This only happened with
git renames from a name without space to one with space.
Benoit Allard <benoit@aeteurope.nl> [Wed, 04 Apr 2012 00:00:47 +0200] rev 16361
protocol: Add the stream-preferred capability
This makes the client use the uncompressed protocol.
Matteo Capobianco <m.capobianco@gmail.com> [Wed, 28 Mar 2012 16:06:20 +0200] rev 16360
templates/filters: extracting the user portion of an email address
Currently, the 'user' filter is using util.shortuser(text) (which clearly
doesn't extract only the user portion of an email address, even though the
help text says it does).
The new 'emailuser' filter uses the new util.emailuser(text) function which,
instead, does exactly that.
The help text on the 'user' filter has been modified accordingly.
Patrick Mezard <patrick@mezard.eu> [Thu, 05 Apr 2012 19:15:23 +0200] rev 16359
context: make changectx.mutable() benefit from .phase() logic
This fixes "hg qimport -r null". Previous versions used to:
- Traceback because null revision mutability was not defined
- Add an empty -1.diff patch to the series
The error message:
abort: revision -1 is not mutable
is symptomatic of a deeper problem in phase command revision handling. It could
be fixed easily in the command itself but I feel a better fix must be done in
phase API which raises the issue of phase updates atomicity: aborting in
phases.advanceboundary/retractboundary requires a better rollback behaviour to
avoid partial changes.
Patrick Mezard <patrick@mezard.eu> [Thu, 05 Apr 2012 19:23:04 +0200] rev 16358
patch: remove useless variable assignment
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 04 Apr 2012 12:31:31 +0200] rev 16357
export: catch exporting empty revsets (
issue3353)
Additionally add tests for empty revsets and unknown revisions.
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 04 Apr 2012 11:19:09 +0200] rev 16356
merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 04 Apr 2012 11:18:42 +0200] rev 16355
test-merge-types: allow different output with existing hgmerge (
issue3346)
Because hgmerge was meant to be adjusted to personal needs, there may be
many remaining copies in people's $PATH.
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 04 Apr 2012 10:57:48 +0200] rev 16354
inotify: catch SignalInterrupt during shutdown (
issue3351)
When inotify.repowatcher.shutdown() is called, mercurial.error.SignalInterrupt
exception is thrown by mercurial.dispatch._runcatch.catchterm(), therefore
socketlistener.shutdown() is not called.
Catching this allows cleanup action (removing the socket file) to proceed.
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 22:02:04 +0200] rev 16353
merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 22:01:28 +0200] rev 16352
clone: always close source repository (
issue2491)
This is especially needed for cloning from bundles as a temporary
bundlerepository is created which needs to be deleted after clone has
finished.
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 21:02:00 +0200] rev 16351
merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 19:06:35 +0200] rev 16350
tests: make tests work if directory contains special characters
With this quoting tests will work e.g. in "/tmp/foo bar/mercurial/".
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 16:36:25 +0200] rev 16349
test-gpg: replace
825565136235 by md5sum check
The call to 'hg identify' would have needed '--cwd "$TESTDIR' to make it work
anyway, but by using a checksum this test can work outside a repository.
Matt Mackall <mpm@selenic.com> [Tue, 03 Apr 2012 11:35:04 -0500] rev 16348
config: discard UTF-8 BOM if found
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 17:02:50 -0500] rev 16347
merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 17:02:03 -0500] rev 16346
tests: shorten post-test sleeps
This helps expose races
Javi Merino <cibervicho@gmail.com> [Mon, 02 Apr 2012 22:25:55 +0100] rev 16345
tests: don't run test-gpg if not in a working directory
test-gpg has to be run in a mercurial working directory as it uses
that to verify that it hasn't modified the trustdb.gpg file. Skip the
test if it is running in an exploded tarball.
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 16:46:58 -0500] rev 16344
tests: avoid zombie lockup with test-hup
The 'while kill -0' recipe can cause a livelock if the process we're waiting
to die is a normal child process. If it becomes a zombie that the shell
doesn't reap (shell bug?), it will continue to be able to accept
signals. So instead, we just wait(1).
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 16:09:29 -0500] rev 16343
merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 16:04:07 -0500] rev 16342
tests: make test-hup more race-proof
We need to wait until a journal exists AND is non-empty before
aborting a transaction to get stable output. We move the kill wait
outside the fifo block to avoid potential deadlock.
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 15:06:36 -0500] rev 16341
tests: re-silence test-bad-pull log messages
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:57:04 -0500] rev 16340
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:54:29 -0500] rev 16339
tests: really add blacklist for vfat on Linux
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:35:12 -0500] rev 16338
tests: fix one more sed -i
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:34:22 -0500] rev 16337
merge stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:31:07 -0500] rev 16336
Added signature for changeset
b9bd95e61b49
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:31:04 -0500] rev 16335
Added tag 2.1.2 for changeset
b9bd95e61b49
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 14:23:55 -0500] rev 16334
tests: fix shutdown race in test-bad-pull
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 14:01:10 -0500] rev 16333
check-code: check for sed -i
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 13:59:11 -0500] rev 16332
tests: remove sed -i from test-record
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 01 Apr 2012 18:18:48 +0900] rev 16331
tests: fix portability of sed usage in test-mq
on some platform (Mac OS X and Solaris, at least), to insert new text
line, sed function 'i' should be followed by:
- backslash('\'),
- new-line,
- text to be inserted and
- new-line
GNU sed on Linux can recognize both previous and new ones as same
modification request.
in addition to it, this patch avoids to use '-i' option for sed,
because it is not so portable, as noted in WritingTests wiki page.
Augie Fackler <durin42@gmail.com> [Sat, 31 Mar 2012 15:39:44 -0500] rev 16330
zsh completion: fix error in qfinish completions from
88a82069be4a
The actual flag is --applied, not --all.
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 14:05:10 -0500] rev 16329
merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 14:04:39 -0500] rev 16328
record: fix up test issues
sed on BSD requires an arg to -i
sed failing exposed an uninitialized variable issue
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 13:46:46 -0500] rev 16327
tests: fix portability of sed expression in test-mq
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 11:19:09 -0500] rev 16326
merge with stable
Takumi IINO <trot.thunder@gmail.com> [Thu, 29 Mar 2012 22:16:56 +0900] rev 16325
tests: skip test-lfconvert.t if not support symblic link
Windows not support symbolic link. but test-lfconvert.t
execute 'ln -s' command.
@@ -51,8 +51,6 @@
skipping incorrectly formatted tag IncorrectlyFormattedTag!
skipping incorrectly formatted id invalidhash
no mapping for id
0123456789abcdef
- abort: renamed/copied largefile large3 becomes symlink
- [255]
$ cd bigfile-repo
$ hg strip --no-backup 2
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
ERROR: test-lfconvert.t output changed
A. S. Budden <abudden@gmail.com> [Fri, 30 Mar 2012 22:08:46 +0100] rev 16324
record: allow splitting of hunks by manually editing patches
It is possible that unrelated changes in a file are on sequential lines. The
current record extension does not allow these to be committed independently.
An example use case for this is in software development for deeply embedded
real-time systems. In these environments, it is not always possible to use a
debugger (due to time-constraints) and hence inline UART-based printing is
often used. When fixing a bug in a module, it is often convenient to add a
large number of 'printf's (linked to the UART via a custom fputc) to the module
in order to work out what is going wrong. printf is a very slow function (and
also variadic so somewhat frowned upon by the MISRA standard) and hence it is
highly undesirable to commit these lines to the repository. If only a partial
fix is implemented, however, it is desirable to commit the fix without deleting
all of the printf lines. This is also simplifies removal of the printf lines
as once the final fix is committed, 'hg revert' does the rest. It is likely
that the printf lines will be very near the actual fix, so being able to split
the hunk is very useful in this case.
There were two alternatives I considered for the user interface. One was to
manually edit the patch, the other to allow a hunk to be split into individual
lines for consideration. The latter option would require a significant
refactor of the record module and is less flexible. While the former is
potentially more complicated to use, this is a feature that is likely to only
be used in certain exceptional cases (such as the use case proposed above) and
hence I felt that the complexity would not be a considerable issue.
I've also written a follow-up patch that refactors the 'prompt' code to base
everything on the choices variable. This tidies up and clarifies the code a
bit (removes constructs like 'if ret == 7' and removes the 'e' option from the
file scope options as it's not relevant there. It's not really a necessity, so
I've excluded it from this submission for now, but I can send it separately if
there's a desire and it's on bitbucket (see below) in the meantime.
Possible future improvements include:
* Tidying up the 'prompt' code to base everything on the choices variable.
This would allow entries to be removed from the prompt as currently 'e' is
offered even for entire file patches, which is currently unsupported.
* Allowing the entire file (or even multi-file) patch to be edited manually:
this would require quite a large refactor without much benefit, so I decided
to exclude it from the initial submission.
* Allow the option to retry if a patch fails to apply (this is what Git does).
This would require quite a bit of refactoring given the current 'hg record'
implementation, so it's debatable whether it's worth it.
Output is similar to existing record user interface except that an additional
option ('e') exists to allow manual editing of the patch. This opens the
user's configured editor with the patch. A comment is added to the bottom of
the patch explaining what to do (based on Git's one).
A large proportion of the changeset is test-case changes to update the options
reported by record (Ynesfdaq? instead of Ynsfdaq?). Functional changes are in
record.py and there are some new test cases in test-record.t.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 31 Mar 2012 15:55:03 +0900] rev 16323
dirstate: fix some problems for recursive case normalization (
issue3342)
file in nested directory causes unexpected abort.
problems below should be fixed for recursive normalization route in
dirstate._normalize():
1. rsplit() may cause unpacking into more than 2 elements.
it should be called with 'maxsplit' argument to unpack
into 'd, f'
2. 'd' is replaced by normalized value prefixed with
'self._root', but this makes 'folded' as absolute path,
and it is unexpected one for caller of recursive
normalization
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 10:44:31 -0500] rev 16322
tests: add a blacklist for VFAT on Linux
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 10:44:31 -0500] rev 16321
tests: make test-walkrepo use hg's symlink test
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 10:44:31 -0500] rev 16320
tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 10:44:31 -0500] rev 16319
tests: teach hghave to actually test for symlink support
Matt Mackall <mpm@selenic.com> [Fri, 30 Mar 2012 14:35:06 -0500] rev 16318
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 30 Mar 2012 14:29:50 -0500] rev 16317
merge with i18n
Patrick Mezard <patrick@mezard.eu> [Thu, 29 Mar 2012 22:42:03 +0200] rev 16316
graphlog: handle old-style --rev values
--rev options cannot be merged into a single revset because we do not know if
they are valid revset or old-style revision specifications, like 'foo-bar'
tags. Instead, a base revision set is generated with scmutil.revrange() then
filtered with the revset built from log options. It also fixes incorrect or
hostile expressions passed in --rev.
Patrick Mezard <patrick@mezard.eu> [Thu, 29 Mar 2012 17:13:23 +0200] rev 16315
test-glog: pretty print revset expressions
Patrick Mezard <patrick@mezard.eu> [Thu, 29 Mar 2012 16:55:08 +0200] rev 16314
graphlog: improve --only-branch handling
The previous code was correct for command line as opts always contains the
default empty lists for --branch and --only-branch options. But calling
graphlog.revset() directly with only --only-branch set would leave it
unprocessed.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 31 Mar 2012 00:04:08 +0900] rev 16313
dirstate: avoid normalizing letter case on icasefs for exact match (
issue3340)
on icasefs, "hg qnew" fails to import changing letter case of filename
already occurred in working directory, for example:
$ hg rename a tmp
$ hg rename tmp A
$ hg qnew casechange
$ hg status
R a
$
"hg qnew" invokes 'dirstate.walk()' via 'localrepository.commit()'
with 'exact match' matching object having exact filenames of targets
in ones 'files()'.
current implementation of 'dirstate.walk()' always normalizes letter
case of filenames from 'match.files()' on icasefs, even though exact
matching is required.
then, files only different in letter case are treated as one file.
this patch prevents 'dirstate.walk()' from normalizing, if exact
matching is required, even on icasefs.
filenames for 'exact matching' are given not from user command line,
but from dirstate walk result, manifest of changecontext, patch files
or fixed list for specific system files (e.g.: '.hgtags').
in such case, case normalization should not be done, so this patch
works well.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 30 Mar 2012 21:18:37 +0900] rev 16312
i18n-ja: synchronized with
cb17c2f5b7b4
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 29 Mar 2012 18:14:20 -0300] rev 16311
i18n-pt_BR: synchronized with
795d591b6ef5
Takumi IINO <trot.thunder@gmail.com> [Thu, 29 Mar 2012 22:16:56 +0900] rev 16310
tests: skip test-lfconvert.t if not support symblic link
Windows not support symbolic link. but test-lfconvert.t
execute 'ln -s' command.
@@ -51,8 +51,6 @@
skipping incorrectly formatted tag IncorrectlyFormattedTag!
skipping incorrectly formatted id invalidhash
no mapping for id
0123456789abcdef
- abort: renamed/copied largefile large3 becomes symlink
- [255]
$ cd bigfile-repo
$ hg strip --no-backup 2
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
ERROR: test-lfconvert.t output changed
Matt Mackall <mpm@selenic.com> [Fri, 30 Mar 2012 14:16:06 -0500] rev 16309
perf: node lookup
Paul Boddie <paul@boddie.org.uk> [Fri, 23 Mar 2012 01:31:31 +0100] rev 16308
hgweb: add block numbers to diff regions and related links
The changeset view may show several diff regions, one per file, and this patch
numbers each of them so that links produced by the filenodelink fragment can
reference each diff region produced by the diffblock fragment through the use
of the blockno variable made available to both of them. This permits
navigation to diff regions on the changeset page from the file list, and
where the :target pseudo-class is supported in browsers, permits selective
presentation of diffs, showing one at a time instead of potentially many in
what would otherwise be a very long page that is difficult to navigate.
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 21 Mar 2012 06:45:07 +0100] rev 16307
patchbomb: add --body flag to send patches as inline message body text
There is currently no way to make patchbomb include patches both as attachments
and as inline text. This would be quite convenient when sending patches to
people who use web email clients (e.g. gmail) which often mangle the patches,
making them hard to apply.
The default behavior of the email command is unchanged. However it is now
possible to use the --body flag _in addition_ to the -i or -a flags, in which
case the patchbomb emails will contain the patch as inline body text and as an
attachment.
A new test has been added to test-patchbomb.t ("test attach for single
patch"), based on the existing test called "test attach for single patch" test.
Greg Ward <greg@gerg.ca> [Wed, 28 Mar 2012 15:25:20 -0400] rev 16306
shrink-revlog: make check-code happier
There's still a naked 'except:' clause, but I'm not sure how to fix it
(what exception is it expecting?). This just fixes line length.
Greg Ward <greg@gerg.ca> [Wed, 28 Mar 2012 15:15:15 -0400] rev 16305
shrink-revlog: make pyflakes happy
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 28 Mar 2012 11:42:17 +0200] rev 16304
revert: move bulk of revert command from commands to cmdutil
This revision has no functionality change. The code on the original
commands.revert() function has been split. The first part of the
original code, which checks that the command inputs are correct
remains in commands.revert(). The rest of the function, which performs
the actual revert operation has been moved into cmdutil.revert().
The purpose of this change is to make it easier to perform a revert
operation, from other parts of the code. This may be used to implement
reverting of subrepos.
Mads Kiilerich <mads@kiilerich.com> [Thu, 29 Mar 2012 00:35:00 +0200] rev 16303
mq: fix qpush --move with comments in series file between applied patches
The 'start' variable pointed to qtip in self.series, but it was used for
indexing self.fullseries.
When fullseries had holes and the patch was moved to self.fullseries[start]
it would end up too early in self.series and it could thus not be
found in self.series[start:] and it would crash.
Now the 'fullstart' index in fullseries is found used instead.
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 19:24:13 -0500] rev 16302
dirstate: normalize case of directory components
If we have an existing f/a, and rename f to F, adding F/b should be
normalized to f/b.
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 19:24:11 -0500] rev 16301
tests: fix startup race in test-http-proxy
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 19:23:25 -0500] rev 16300
tests: fix startup/shutdown races in test-https
tinyproxy now writes its own pid when it's ready to accept connections
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 12:02:38 -0500] rev 16299
tests: remove sleep/startup/shutdown races from test-hup
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 11:28:37 -0500] rev 16298
tests: fix shutdown race in test-hgweb-raw
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 10:29:39 -0500] rev 16297
tests: eliminate shutdown race and sleeps in test-serve
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 10:11:12 -0500] rev 16296
tests: eliminate daemon race in test-bad-pull
Matt Mackall <mpm@selenic.com> [Tue, 27 Mar 2012 16:17:46 -0500] rev 16295
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 27 Mar 2012 16:13:59 -0500] rev 16294
alias: abort on missing positional args (
issue3331)
Greg Ward <greg@gerg.ca> [Wed, 15 Feb 2012 17:30:21 -0500] rev 16293
phases: fix a non-standard debug message
- add missing newline
- ditch gratuitous use of string formatting with dict
- fix so it actually does string formatting ('%' rather than ',')
- inline unnecessary local variable
- downcase first word
Augie Fackler <durin42@gmail.com> [Sat, 24 Mar 2012 22:13:17 -0500] rev 16292
convert/git: abort if git submodules are detected (
issue2150)
This improves the error message when convert encounters a git
submodule. Now, instead of a git-cat-file error, we'll directly report
the lack of support for git submodules.
Matt Mackall <mpm@selenic.com> [Tue, 27 Mar 2012 14:37:17 -0500] rev 16291
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 24 Mar 2012 12:06:49 +0100] rev 16290
qfinish: comply with the phases.new-commit option in secret mode (
issue3335)
In secret mode qfinished changeset were move to the draft phase in all case[1]
without regard to phases.new-commit value
This changeset ensure qfinish does not automatically promote a changeset
further than the phases.new-commit value.
Note: This may also result in qfinished changeset made public if
phases.new-commit is set to public.
[1] "In all case" where parent have a compatible phase. Qfinish keep never
altering phases of changeset not involved in the qfinish.
Greg Ward <greg@gerg.ca> [Wed, 21 Mar 2012 22:16:12 -0400] rev 16289
test-gpg: make sure gpg does not modify the trustdb.gpg file
Tests really should not modify files in the Mercurial working dir
where they ran from! I suspect that trustdb.gpg is now old enough that
GPG thinks it should update it automatically. Suppress that feature
with --no-auto-check-trustdb.
Matt Mackall <mpm@selenic.com> [Tue, 27 Mar 2012 13:57:54 -0500] rev 16288
tests: remove case-folding false positive
Matt Mackall <mpm@selenic.com> [Tue, 27 Mar 2012 14:35:58 -0500] rev 16287
merge with i18n
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 27 Mar 2012 20:37:52 +0900] rev 16286
i18n-ja: synchronized with
900eee0778d1
Matt Mackall <mpm@selenic.com> [Mon, 26 Mar 2012 16:42:53 -0500] rev 16285
merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 26 Mar 2012 16:41:54 -0500] rev 16284
merge: fix unknown file merge detection for case-folding systems
This was triggering some test failures on Mac.
Matt Mackall <mpm@selenic.com> [Fri, 23 Mar 2012 11:47:27 -0500] rev 16283
rename: handle case-changing (
issue1717)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 22 Mar 2012 23:58:47 +0900] rev 16282
largefiles: use 'dirstate.dirs()' for 'directory pattern' relation check
original implementation queries whether specified pattern is related
or not to largefiles in target context by 'dirstate.__contains__()'.
but this can't recognize 'directory pattern' correctly, so this patch
uses 'dirstate.dirs()' for it.
this patch uses dirstate instead of lfdirstate in 'working' route
(second patch hunk for 'hgext/largefiles/reposetup.py'), because
'dirs()' information may be already built for dirstate but not yet for
lfdirstate at this point. this prevents lfdirstate from building up
and having 'dirs()' information.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 22 Mar 2012 23:58:47 +0900] rev 16281
largefiles: suppress unexpected warning of 'hg status' for removed files
original implementation queries whether specified pattern is related
or not to largefiles, to target context.
but changectx/workingctx returns False about relationship with files
marked as removed.
So, 'hg status' with 'file pattern' for removed file shows unexpected
warning message in below process:
1. 'tostandin()' returns non-STANDIN filename for removed file,
because changectx/workingctx returns False about relationship
with it
2. 'match.files()' contains non-STANDIN filename, which is already
removed from working directory
3. 'dirstate.walk()' invoked via 'localrepository.status()' treats
non-STANDIN filename as bad filename, because there is no entry
for it in dirstate: only STANDIN is managed in dirstate
4. 'dirstate.walk()' invokes 'match.bad()', which is defined in
'localrepository.status()' as 'bad()'
5. 'bad()' shows warning message for non-STANDIN, because it is
not related to source context: only STANDIN is related to it
this patch queries to dirstate instead of changectxt/workingctx,
because dirstate returns expected result for removed files.
'match.files()' is used by 'localrepository.status()' only in
'working' case, so this patched code also works correctly in
non-'working' case.
Matt Mackall <mpm@selenic.com> [Thu, 22 Mar 2012 17:47:00 -0500] rev 16280
rebase: properly calculate descendant set when aborting (
issue3332)
Checking for descendants of target being public was also wrong.
Matt Mackall <mpm@selenic.com> [Thu, 22 Mar 2012 17:08:05 -0500] rev 16279
merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 22 Mar 2012 17:07:39 -0500] rev 16278
strip: ignore -n (
issue3326) (BC)
-n could be confused for --dry-run by foolhardy users, resulting in
permanent data loss.
As leaving a backup when none was requested is significantly less
disastrous, the short option is silently ignored. Old scripts continue
to work, users only get lightly burned.
Matt Mackall <mpm@selenic.com> [Thu, 22 Mar 2012 17:07:39 -0500] rev 16277
aliases: use empty string for missing position parameters (
issue3331)
Kevin Bullock <kbullock@ringworld.org> [Wed, 21 Mar 2012 16:39:38 -0500] rev 16276
bookmarks: clone non-divergent bookmarks with @ in them
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 21 Mar 2012 17:24:15 +0900] rev 16275
i18n-ja: synchronized with
2338ab19b236
Matt Mackall <mpm@selenic.com> [Thu, 22 Mar 2012 16:54:46 -0500] rev 16274
encoding: tune fast-path of tolocal a bit
Martin Geisler <mg@aragost.com> [Thu, 15 Mar 2012 16:57:19 +0100] rev 16273
eol: remove left-over print statements
Martin Geisler <mg@aragost.com> [Thu, 15 Mar 2012 16:52:22 +0100] rev 16272
eol: document why os.utime doesn't work here
I wanted to use
os.utime(self.join("eol.cache"), None)
as a cleaner way of touching the cache file -- but this fails when the
cache doesn't exist.
Matt Mackall <mpm@selenic.com> [Sun, 18 Mar 2012 18:21:58 -0500] rev 16271
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 18 Mar 2012 18:21:32 -0500] rev 16270
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 14 Mar 2012 16:26:14 -0300] rev 16269
i18n-pt_BR: fix format.dotencode help section
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 14 Mar 2012 12:52:50 -0300] rev 16268
i18n-pt_BR: synchronized with
3d26d69ef822
Matt Mackall <mpm@selenic.com> [Sun, 18 Mar 2012 18:19:16 -0500] rev 16267
changelog: micro-optimizations to changelog.read()
Matt Mackall <mpm@selenic.com> [Fri, 16 Mar 2012 19:58:47 -0500] rev 16266
perf: add a changeset test
Matt Mackall <mpm@selenic.com> [Fri, 16 Mar 2012 17:42:21 -0500] rev 16265
convert: deal with empty splicemap path (
issue3311)
Javi Merino <cibervicho@gmail.com> [Thu, 15 Mar 2012 23:02:31 +0000] rev 16264
tests: ignore git's output in test-subrepo-git.t
git version 1.7.9.1 makes the testsuite fail with:
@@ -482,7 +482,17 @@
Sticky repository, update --clean
$ hg update --clean tip
- Previous HEAD position was aa84837... f
+ Warning: you are leaving 2 commits behind, not connected to
+ any of your branches:
+
+ aa84837 f
+ 126f2a1 gg
+
+ If you want to keep them by creating a new branch, this may be a good time
+ to do so with:
+
+ git branch new_branch_name
aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
+
HEAD is now at 32a3438... fff
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
ERROR: test-subrepo-git.t output changed
Matt Mackall <mpm@selenic.com> [Thu, 15 Mar 2012 15:59:26 -0500] rev 16263
profile: add undocumented config options for profiler output
Matt Mackall <mpm@selenic.com> [Thu, 15 Mar 2012 15:58:55 -0500] rev 16262
perf: add perfchangeset to time changeset parsing
Matt Mackall <mpm@selenic.com> [Thu, 15 Mar 2012 13:11:42 -0500] rev 16261
merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 15 Mar 2012 13:11:03 -0500] rev 16260
perf: tweak tests for testing index performance improvements
Edouard Gomez <ed.gomez@free.fr> [Wed, 14 Mar 2012 01:13:45 +0100] rev 16259
convert: support non annotated tags in git backend
Do not blindly filter out non ending ^{} tags. The new logic
is:
- if both "tag" and "tag^{}" exist, "tag^{}" is what we want
- if only "tag" exists, "tag" is fine
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 15 Mar 2012 00:46:37 +0900] rev 16258
icasefs: use case preserved root for 'util.fspath()' invocation (
issue3302)
path to repo root may contains case sensitive part, even though repo
is located in case insensitive filesystem: e.g. repo in FAT32 device
mounted on Unix.
so, case normalized root causes failure of stat(2).
this patch uses case preserved root for 'util.fspath()' invocation to
avoid this problem.
case preserved root for 'util.fspath()' may decrease efficiency of
fspath cache, but 'util.fspath()' is currently called only from
dirstate, so this fix has less impact.
Matt Mackall <mpm@selenic.com> [Wed, 14 Mar 2012 14:45:41 -0500] rev 16257
merge: accept missing revisions in symlink flag merge (
issue3316)
Matt Mackall <mpm@selenic.com> [Tue, 13 Mar 2012 16:29:13 -0500] rev 16256
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 13 Mar 2012 16:28:08 -0500] rev 16255
merge: handle linear update to symlink correctly (
issue3316)
This fixes a regression introduced by
fcf66193b186. If no file-level
merge is needed, we can update flags directly, otherwise we have a
conflict to resolve in filemerge.
Matt Mackall <mpm@selenic.com> [Tue, 13 Mar 2012 15:12:26 -0500] rev 16254
filemerge: restore default prompt for binary/symlink lost in
83925d3a4559
This could result in a traceback.
Matt Mackall <mpm@selenic.com> [Mon, 12 Mar 2012 17:05:42 -0500] rev 16253
merge with stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 12 Mar 2012 17:02:45 -0300] rev 16252
strip: enhance repair.strip to receive a list of nodes (
issue3299)
Originally, mq.strip called repair.strip a single rev at a time.
repair.strip stores in a backup bundle any revision greater than
the revision being stripped, strips, then restores the backup with
repo.addchangegroup. So, when stripping revisions on more than one
topological branch, some could end up being restored from the backup
bundle, only to be later removed by a subsequent repair.strip call.
But repo.addchangegroup calls hooks for all those restore operations.
And
9df9444e96ec changed it to delay all hook calls until the
repository lock were released - by mq.strip, after stripping all
revisions. Thus, the hooks could be called over revisions already
removed from the repository at that point.
By generating the revision lists at once inside repo.strip, we avoid
calling addchangegroup for temporary restores. Incidentally, this
also avoids creating many backup files for a single strip command.
"Yann E. MORIN" <yann.morin.1998@free.fr> [Wed, 07 Mar 2012 01:02:12 +0100] rev 16251
templates/filters: add doctest to the 'person' filter
Add a doctest with an hopefuly-comprehensive list of combinations
we can expect in real-life situations.
This does not cover corner cases, for example when a CR or LF is
embedded in the name (allowed by RFC 5322!).
Code in tests/test-doctest.py contributed by:
Martin Geisler <mg@aragost.com>
Thanks!
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
"Yann E. MORIN" <yann.morin.1998@free.fr> [Fri, 09 Mar 2012 22:54:17 +0100] rev 16250
help: strip doctest from dochelp
When a dochelp string contains doctest code, the doctest
code is not stripped, so the help also displays the doctest.
Just stop parsing dochelp at the first hint of a doctest
section (starting with >>>).
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>