Commit Graph

4037 Commits

Author SHA1 Message Date
Matt Mackall
dbab506672 debugindex: add --format flag to allow debugging parentdelta
-f 1 shows extra data from revlogv1 (aka revlogng) including flags and size

(based on a patch by Pradeepkumar Gayam <in3xes@gmail.com>)
2010-10-30 02:47:35 -05:00
Martin Geisler
02c90a666d qnew: distinguish between existing file and directory (issue2464) 2010-10-29 14:06:06 +02:00
Martin Geisler
3bd0773df5 qnew: give better feedback when doing 'hg qnew foo/' (issue2464) 2010-10-29 15:25:21 +02:00
Patrick Mezard
1ba47f6d3d mq: qrename should not touch the dirstate if src is untracked (issue2460) 2010-10-28 22:04:33 +02:00
Patrick Mezard
a3c9b27eda patch: fix copies when patching over uncommitted changed (issue2459) 2010-10-28 21:25:53 +02:00
Matt Mackall
50b99d1a5a encoding: default ambiguous character to narrow
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.
2010-10-27 15:35:21 -05:00
Augie Fackler
caa25014d3 progress: react more reasonably to nested progress topics
Previously, we'd reset the entire progress bar state when a topic was
completed, even if it wasn't the outermost progress topic. Now we
print the state of the next progress topic on the stack if one is left
rather than reset the progress bar.
2010-12-10 16:56:12 -06:00
Martin Geisler
679f27515a merge with stable 2010-12-13 11:53:17 +01:00
Martin Geisler
fdfec2742f merge default heads in crew and main 2010-12-13 11:52:52 +01:00
Benoit Boissinot
d2ea44dc59 merge with stable 2010-12-10 23:05:48 +01:00
Matt Mackall
6bcc439bb1 merge with stable 2010-12-08 13:12:12 -06:00
Dan Villiom Podlaski Christiansen
c168860461 make_file: always return a fresh file handle that can be closed
Currently, cmdutil.make_file() will return a freshly made file handle,
except when given a pattern of '-'. If callers would want to close the
handle, they would have to make sure that it's neither sys.stdin or
sys.stdout. Instead, returning a duplicate of either of the two
ensures that make_file() lives up to its name and creates a new
file handle regardless of the input.
2010-12-07 16:08:16 +01:00
Augie Fackler
11bc43400a bundle progress: offer best-guess deterministic progress information
This uses the same strategy as progress for pulls, estimating manifests
based on changeset count and estimating file count by files list in
each changeset.
2010-12-10 13:30:37 -06:00
Eric Eisner
196def6fd2 subrepo: silence git output when ui.quiet is set 2010-12-09 16:52:14 -05:00
Eric Eisner
bdf59c0067 test-subrepo-git.t: make gitroot pushable earlier
Older git versions get confused when the git repo becomes bare.
2010-12-06 21:17:27 -05:00
Eric Eisner
3cd880088d test-subrepo-git.t: silence git output
Older git versions have different ideas of what output is considered quiet,
so the tests can be more version-blind.
2010-12-06 21:17:27 -05:00
Eric Eisner
433dad3882 subrepo: lazily update git's local tracking branches
This continues the strategy of separation between hg pull and hg update in
git subrepos by only dealing with git's branches on an update. This behavior
tries to cover the bare essentials of the semantics of git pull in the subrepo
when the parent repo does hg pull and hg update.
2010-11-28 17:19:23 -05:00
Dan Villiom Podlaski Christiansen
165e2565b2 test-demandimport.py: PyPy support
The stringification of sys.stderr is different in PyPy:

$ pypy -c 'import sys; print sys.stderr'
<open file '<fdopen>', mode 'w' at 0x00a42080>

$ python -c 'import sys; print sys.stderr'
<open file '<stderr>', mode 'w' at 0x10025a270>

The test will now ignore the exact value between the angle brackets.
2010-12-01 21:46:08 +01:00
Dan Villiom Podlaski Christiansen
11ed1bfd69 test-clone-failure.t: fix unification oversight
Prior to unification, the test contained an 'echo $?' line. This line
was removed during unification, but the 'echo 255' line that faked it
when FIFO support is absent was not.
2010-12-01 19:20:16 +01:00
Thomas Arendsen Hein
16ae1c2ebb coding style: fix yield used as a function 2010-12-03 12:22:56 +01:00
Matt Mackall
15ad3a76d6 merge with stable 2010-12-01 18:47:40 -06:00
Martin Geisler
e8fe71a94d merge with stable 2010-12-01 11:04:50 +01:00
Nicolas Dumazet
7e56ad61ee merge with stable 2010-12-01 11:02:12 +09:00
Matt Mackall
776084cff3 pushkey: use UTF-8 2010-11-28 18:21:47 -06:00
Matt Mackall
8b31da4540 branch: operate on branch names in local string space where possible
Previously, branch names were ideally manipulated as UTF-8 strings,
because they were stored as UTF-8 in the dirstate and the changelog
and could not be safely converted to the local encoding and back.

However, only about 80% of branch name code was actually using the
right encoding conventions. This patch uses the localstr addition to
allow working on branch names as local strings, which simplifies
handling so that the previously incorrect code becomes correct.
2010-11-24 15:56:32 -06:00
Matt Mackall
c7059d3926 encoding: add localstr class to track UTF-8 version of transcoded strings
This allows UTF-8 strings to losslessly round-trip through Mercurial
2010-11-24 15:38:52 -06:00
Matt Mackall
8e2f7d14eb merge with stable 2010-11-22 13:11:46 -06:00
Adrian Buehlmann
db484176ce tests: integrate test-hardlinks-safety.t into test-hardlinks.t
Should make running the testsuite a bit faster.

Also, test-hardlinks.t and test-hardlinks-safety.t now have enough
infrastructure in common.
2010-11-22 17:32:51 +01:00
Steve Losh
72ee3af1d8 mq: add an '-e/--exact' option to qpush
This patch adds an '--exact/-e' option to qpush that will try to push the
patches in the correct location in the DAG.  Specifying this option does the
following:

* If --move is specified, abort. It makes no sense to move a patch to the front
  of the queue and try to apply it to its parent, because its parent is one of
  the patches we just moved it in front of!
* If patches are already applied, abort. We don't want patch changesets
  scattered throughout the DAG.
* If local changes are present, abort unless --force is used, as usual.
* Find the first patch we're going to push (if we're pushing multiple patches
  with a target or --all).
* If that patch doesn't have a parent, abort, obviously.
* If the parent doesn't exist in the repo, abort.  Something is wrong.
* Update to the parent, then continue pushing the patches as normal.
2010-11-17 21:18:44 -05:00
Martin Geisler
6a3d9310ab code style: prefer 'is' and 'is not' tests with singletons 2010-11-22 18:15:58 +01:00
Eric Eisner
47f74e81de subrepo: lazier git push logic
Avoids calls to git push when the revision is already known to be
in the remote repository. Now, when using a read-only git subrepo,
git will never need to talk to its upstream repository.
2010-11-21 22:00:51 -05:00
Eric Eisner
0e03c676b5 subrepo: archive git subrepos 2010-11-18 19:20:21 -05:00
Adrian Buehlmann
5e2e71ea82 check-code: catch Python 'is' comparing number or string literals
The Python 'is' operator compares object identity, so it should
definitely not be applied to string or number literals, which Python
implementations are free to represent with a temporary object.

This should catch the following kinds of bogus expressions (examples):

  x is 'foo'     x is not 'foo'
  x is "bar"     x is not "bar"
  x is 42        x is not 42
  x is -36       x is not -36

As originally proposed by Martin Geisler, amended with catching
negative numbers.
2010-11-21 11:52:27 +01:00
Patrick Mezard
ad186e82b5 Merge with stable 2010-11-21 13:16:59 +01:00
timeless
2f8d0b40e3 record: quote command in use hg commit message 2010-11-21 05:07:06 -06:00
timeless
f425b70af2 revert: improve merge advice and favor its error over all 2010-11-20 20:41:48 +02:00
Adrian Buehlmann
3eb9fea74e test-hardlinks: add testcase for repo copied with 'cp -al'
This patch adds a case to test-hardlinks.t which demonstrates that
hardlinks in the working directory are broken up (using 'hg update').

Motivation for this patch:

'hg help clone' shows copying repositories *and* the working directory
using 'cp -al', creating hardlinks in the *working directory* too (not
just in the store).

Note that we can't use 'cp -al' since for example MacOS X doesn't
support these options on cp. I'm thus using the same trick as in
test-hardlinks-safety.t for creating hardlinks in the working dir.
2010-11-17 16:54:30 +01:00
Patrick Mezard
4795589405 Merge with stable 2010-11-18 23:15:13 +01:00
Patrick Mezard
4c85200b1f Merge with stable 2010-11-17 21:30:13 +01:00
Erik Zielke
cd95a50630 minirst: improved support for option lists.
This enables minirst to parse and print option lists which have both
long and short options. Before, we could only parse option lists with
long options.
2010-11-02 17:44:19 +01:00
Dan Villiom Podlaski Christiansen
56cb66ebbb test-subrepo-git.t: portability fix.
Specifying arguments after file names for 'ls' is a GNU extension.
2010-11-16 13:29:35 +01:00
Erik Zielke
87792363c2 minirst: modified minirst to also recognize empty comments.
The modifies minirst to also handle empty comments. An empty comment
is a block with a single line containing two dots.
2010-11-16 13:29:08 +01:00
Nicolas Dumazet
7292968c6f run-tests: fix --debug for .t tests
When --debug is given to the test runner, run() returns (retcode, None).
Do not try to use None output as a string, and return directly, similarly
as other testers.
2010-11-16 10:33:19 +09:00
Adrian Buehlmann
c5ab776a53 discovery: list new remote heads in prepush() on --debug
With this patch applied, Mercurial will list the hashes of new remote heads
if push --debug aborts because of new remote heads (option -f/--force not set).

Example:

  $ hg push --debug repo1
  using http://example.org/repo1
  http auth: user johndoe, password not set
  sending between command
  pushing to http://example.org/repo1
  sending capabilities command
  capabilities: changegroupsubset stream=1 lookup pushkey unbundle=HG10GZ,HG10BZ,HG10UN branchmap
  sending heads command
  searching for changes
  common changesets up to 187dd3f0a37d
  sending branchmap command
  new remote heads on branch 'default'        <- new output line
  new remote head 5862c07f53a2                <- new output line
  abort: push creates new remote heads on branch 'default'!
  (did you forget to merge? use push -f to force)

Compare to without --debug (not changed by this patch, including it here
for reference purposes only):

  $ hg push repo1
  pushing to http://example.org/repo1
  searching for changes
  abort: push creates new remote heads on branch 'default'!
  (did you forget to merge? use push -f to force)

Motivation for this change:

'hg outgoing' may list a whole lot of benign changesets plus an odd changeset
that will trigger the "new remote heads" abort. It can be hard to spot that
single unwanted changeset (it may be an old forgotten experiment, lingering
in the local repo).

"hg log -r 'heads(outgoing())'" might be useful, but that also lists a head
that may be benign on push.

Inside prepush(), we already know which heads are causing troubles on 'hg push'.
Why not make that info available (at least on --debug)?

This would also be helpful for doing remote support, as the supporter can ask
the user to paste the output of 'hg push --debug' on error and then ask further
questions about the heads listed.
2010-11-11 15:51:20 +01:00
Eric Eisner
c8106b69bb subrepo: removing (and restoring) git subrepo state 2010-11-14 18:31:40 -05:00
Eric Eisner
7c9ab4f118 subrepo: update and merge works with any git branch 2010-11-14 18:31:29 -05:00
Eric Eisner
22744d6861 subrepo: allow git subrepos to push and merge
(master branch only)

gitsubrepo based on patch from David Soria Parra:
http://bitbucket.org/segv/davids-poor-git-subrepo-attempt/
2010-11-14 18:22:33 -05:00
Eric Eisner
244b8e45a7 subrepo: cloning and updating of git subrepos
gitsubrepo based on patch from David Soria Parra:
http://bitbucket.org/segv/davids-poor-git-subrepo-attempt/
2010-11-14 18:20:13 -05:00
Eric Eisner
579b798395 subrepo: support for adding a git subrepo
gitsubrepo based on patch from David Soria Parra:
http://bitbucket.org/segv/davids-poor-git-subrepo-attempt/
2010-11-14 18:15:26 -05:00
Martin Geisler
4fd0f0e58d test-win32text: use $TESTTMP in output 2010-11-13 15:20:37 +01:00
Martin Geisler
338d9e28eb test-win32text: use (esc) lines instead of Python script 2010-11-13 15:16:50 +01:00
Martin Geisler
d9339ae620 merge with stable 2010-11-13 15:12:09 +01:00
Nicolas Dumazet
1126494b0f merge with stable 2010-11-13 11:58:51 +09:00
Matt Mackall
d706c5ce4c merge with stable 2010-11-12 01:22:46 -06:00
Martin Geisler
573e60523a merge with stable 2010-11-11 07:23:38 +01:00
Martin Geisler
f8298dbc7f merge with stable 2010-11-10 15:44:19 +01:00
Matt Mackall
8b15f81f91 merge with stable 2010-11-08 17:29:23 -06:00
Nicolas Dumazet
d11d40059b merge with stable 2010-11-09 01:33:48 +09:00
Mads Kiilerich
94b5b8d186 test-import: workaround for missing newline is no longer needed 2010-11-08 01:55:32 +01:00
Mads Kiilerich
c7c5b4c732 merge with stable 2010-11-08 01:44:46 +01:00
Patrick Mezard
43a1583455 revset: remove unnecessary debug statement 2010-11-07 18:15:17 +01:00
Patrick Mezard
a6f7f2ff05 revset: fix p1, p2 and parents in dirstate case (60aa454e7734)
- Handle 'subset' argument
- Stop returning the null rev from p1 and parents, as in the non-dirstate case
- Order parents as in the non-dirstate case (ascending revs)
2010-11-07 18:14:42 +01:00
Matt Mackall
9f16ce2e0a merge with stable 2010-11-05 15:38:23 -05:00
Martin Geisler
f930aa4382 merge with stable 2010-11-05 15:35:39 +01:00
Kevin Bullock
e238d72ecb revsets: let parents() return parents of working dir
This patch makes the 'set' argument to revset function parents() optional.
Like p1() and p2(), if no argument is given, returns the parent(s) of the
working directory.

Morally equivalent to 'p1()+p2()', as expected.
2010-11-04 17:09:00 -05:00
Kevin Bullock
63e0b7b699 revsets: let p1() and p2() return parents of working dir
This patch makes the 'set' argument to revset functions p1() and p2()
optional. If no argument is given, p1() and p2() return the first or second
parent of the working directory.

If the working directory is not an in-progress merge (no 2nd parent), p2()
returns the empty set. For a checkout of the null changeset, both p1() and
p2() return the empty set.
2010-11-04 16:59:03 -05:00
Matt Mackall
72b5ba88f5 commands: add revset support to most commands 2010-11-04 16:21:28 -05:00
Martin Geisler
270e016cd4 convert: better ReST markup in docstring 2010-11-04 18:19:10 +01:00
Erik Zielke
e9f419e2c6 convert: use field list instead of option list in help
Use field list instead of option list in convert help, because the
option list format used, with defaults and type of argument is not
supported by docutils.
2010-11-04 14:14:47 +01:00
Patrick Mezard
8966ea5717 tests: unify test-no-symlinks 2010-11-03 22:34:16 +01:00
Patrick Mezard
b2c4b4e453 test-import: use printf instead of echo 2010-11-03 21:10:59 +01:00
Dan Villiom Podlaski Christiansen
f385faac7a *: kill all unnecessary shebangs. 2010-10-26 12:18:39 +02:00
Dan Villiom Podlaski Christiansen
080231037c *: add executable bit to a few files that were missing it. 2010-10-26 12:18:37 +02:00
Steve Borho
4259758ee2 import: --no-commit should update .hg/last-message.txt
The patch parser goes through all of that trouble extracting the
commit message from the patch file.  It seems such a waste not to
use it.
2010-10-21 16:04:34 -05:00
Mads Kiilerich
deb3deca01 test-win32text.t: stabilize test output
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.
2010-10-27 03:21:36 +02:00
Mads Kiilerich
eaea535bf7 subrepo: propagate non-default pull/push path to relative subrepos (issue1852) 2010-10-27 00:28:40 +02:00
Kevin Bullock
15da3ac7f2 pull: silence spurious 'requesting all changes' message
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.
2010-10-20 17:38:21 -05:00
Pradeepkumar Gayam
226f2a834c templates: fix inconsistency in 'help' link 2010-10-26 02:38:14 +05:30
Yuya Nishihara
93e1a12bf9 test-patchbomb: add test for progress support (ca12f6ae8d9d) 2010-10-25 01:11:52 +09:00
Christian Ebert
baf94f43b9 keyword: fix regressions introduced in 1416551b9299
- dirstate of overwritten files must be forced to normal
  with kwexpand/kwshrink, not commit.
- recorded files must be weeded before overwriting.
- add test cases.
2010-10-24 15:11:41 +01:00
Martin Geisler
b25b3e7e4f tests: test/silence win32text deprecation warning 2010-10-25 23:55:43 +02:00
Matt Mackall
b6427b4a0a version: replace email address with url to reduce private mail 2010-10-24 16:02:10 -05:00
Patrick Mezard
4f21d24f6f Add subrepos help topic
Edited by:
Martin Geisler <mg@lazybytes.net>
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
2010-10-24 19:28:44 +02:00
Patrick Mezard
88ff8c9a1e Test applying context diffs 2010-10-24 12:56:38 +02:00
Patrick Mezard
bd120906a2 Fix and unify transplant and bookmarks revsets doc registration 2010-10-23 19:22:42 +02:00
Patrick Mezard
88087f644b help: add topic rewriting hooks
They are useful when updating help topics dynamically from extensions.
2010-10-23 19:21:49 +02:00
Martin Geisler
98ed55bc01 minirst: ignore comments 2010-10-23 17:30:08 +02:00
Patrick Mezard
dd00c736bd test-transplant: test transplanted() revset 2010-10-22 22:58:17 +02:00
Steve Borho
e74d5a4302 backout: add --tool argument for specifying merge tool 2010-10-22 11:58:43 -05:00
Matt Mackall
0677d9a163 subrepo: fix status check on SVN subrepos (issue2445) 2010-10-21 03:28:51 -05:00
Steve Borho
6a890aa672 Merge with mpm 2010-10-20 15:36:42 -05:00
Matt Mackall
9eec9de27b tests: fix up changed output 2010-10-20 15:09:38 -05:00
Steve Borho
a3baf6a2e7 merge: implement --tool arguments using new ui.forcemerge configurable
ui.forcemerge is set before calling into merge or resolve commands, then unset
to prevent ui pollution for further operations.

ui.forcemerge takes precedence over HGMERGE, but mimics HGMERGE behavior if the
given --tool is not found by the merge-tools machinery.  This makes it possible
to do:  hg resolve --tool="python mymerge.py" FILE

With this approach, HGMERGE and ui.merge are not harmed by --tool
2010-10-19 22:33:52 -05:00
Mads Kiilerich
affe4fdcad hgweb: use Pythons ssl module for HTTPS serve when using Python 2.6 or later
pyOpenSSL apparently doesn't work for Python 2.7 and isn't very actively
maintained.

The built-in ssl module seems like a long-term winner, so we now use that with
Python 2.6 and higher.
2010-10-20 20:19:34 +02:00
Wagner Bruna
d4398837df revset: disable subset optimization for parents() and children() (issue2437)
For the boolean operators, the subset optimization works by calculating
the cheaper argument first, and passing the subset to the second
argument to restrict the revision domain. This works well for filtering
predicates.

But parents() don't work like a filter: it may return revisions outside the
specified set. So, combining it with boolean operators may easily yield
incorrect results. For instance, for the following revision graph:

0 -- 1

the expression '0 and parents(1)' should evaluate as follows:

0 and parents(1) ->
0 and 0 ->
0

But since [0] is passed to parents() as a subset, we get instead:

0 and parents(1 and 0) ->
0 and parents([]) ->
0 and [] ->
[]

This also affects children(), p1() and p2(), for the same reasons.
Predicates that call these (like heads()) are also affected.

We work around this issue by ignoring the subset when propagating
the call inside those predicates.
2010-10-15 03:30:38 -03:00
Matt Mackall
0f064b0796 check-code: warning and fixes for whitespace in unified tests 2010-10-20 14:57:36 -05:00
timeless
8a61a96909 test-ssh: handle very slow ssh transfer rate 2010-10-14 10:56:39 +03:00
Wagner Bruna
e934c64ad0 strip: support revision sets 2010-10-18 18:31:38 -02:00
Nicolas Dumazet
df5e48e13e test-tags: use printf instead of echo '...\n' 2010-10-19 23:15:31 +09:00
Nicolas Dumazet
9eb3896291 tags: do not fail if tags.cache is corrupted (issue2444)
This file is not critical for hg, so we can safely
swallow the ValueError
2010-10-19 20:20:10 +09:00
Dan Villiom Podlaski Christiansen
17cfc8fdc9 merge: make 'diverging renames' diagnostic a more helpful note.
See the Hg Book on why we actually want to detect this case:
http://hgbook.red-bean.com/read/mercurial-in-daily-use.html#id364290

Before:

$ hg up deadbeef
warning: detected divergent renames of X to:
...

After:

$ hg up deadbeef
note: possible conflict - X was renamed multiple times to:
...

No functionality change.
2010-10-10 09:50:25 -05:00
Mads Kiilerich
fd086af9b7 subrepo: abort instead of pushing/pulling to the repo itself
_abssource will now abort (or return None) in the rare cases where no push/pull
path can be found.
2010-10-19 03:56:20 +02:00
Mads Kiilerich
35ef3c1409 mdiff: carriage return (\r) is also ignorable whitespace 2010-10-19 03:55:06 +02:00
Steve Borho
e484985865 merge: add --tool argument to merge and resolve
These arguments are shorthand for --config ui.merge, but they also
override HGMERGE if it is found in the user's environment.
2010-10-15 23:00:45 -05:00
Steve Losh
0224e99d28 alias: fail gracefully when invalid global options are given (issue2442)
This patch modifies the check for shell aliases to prevent crashing when an invalid
global option is given.

When an invalid global option is given the check will simply return and let the
normal error handling for this case happen.
2010-10-17 13:24:37 -04:00
timeless
6c6a718e86 progress: dropping superfluous space from units 2010-07-20 20:53:48 +02:00
Adrian Buehlmann
758fc721d8 check-code: add 'no tab indent' check for unified tests
and fix the offending tests accordingly
2010-10-16 18:09:01 +02:00
Mads Kiilerich
70b420d9b9 url: validity (notBefore/notAfter) is checked by OpenSSL (issue2407)
Removing the check from our code makes https with cacerts check work with
Python < 2.6.
2010-10-17 04:14:06 +02:00
Mads Kiilerich
26f5319c13 test-https: test web.cacerts functionality 2010-10-17 04:13:50 +02:00
Mads Kiilerich
c627f511ce serve: fix https mode and add test
The https mode failed in super because BaseRequestHandler is an old-style
class.

This introduces the first test of https client/server functionality - and
"hghave ssl". The test is currently only run on Python 2.6.
2010-10-17 04:13:35 +02:00
Benoit Boissinot
d7dc2daaa0 revset: use 'requires' instead of 'wants' in error message 2010-10-16 18:50:53 +02:00
Mads Kiilerich
287d9de60b import: only the first hg patch marker should be processed (issue2417)
Proper use of the hgpatch state variable had been lost in the final edits of
6f45596f715c - now it works more like intended.
2010-10-14 01:28:29 +02:00
Gilles Moris
16cffc19ee backout: provide linear backout as a default (without --merge option)
This changes backouts changeset to retain linear history, .e. it is committed
as a child of the working directory parent, not the reverted changeset
parent.

The default behavior was previously to just commit a reverted change as a
child of the backed out changeset - thus creating a new head. Most of
the time, you would use the --merge option, as it does not make sense to
keep this dangling head as is.
The previous behavior could be obtained by using 'hg update --clean .' after a
'hg backout --merge'.

The --merge option itself is not affected by this change. There is also
still an autocommit of the backout if a merge is not needed, i.e. in case
the backout is the parent of the working directory.

Previously we had (pwd = parent of the working directory):
                  pwd     older
backout           auto    merge
backout --merge   auto    commit

With the new linear approach:
                  pwd     older
backout           auto    commit
backout --merge   auto    commit

auto: commit done by the backout command
merge: backout also already committed but explicit merge and commit needed
commit: user need to commit the update/merge
2010-09-10 10:28:18 +02:00
Augie Fackler
457b3d77e0 update: use revsingle to enable use of revsets as update targets (issue1993) 2010-10-11 10:07:42 -05:00
Augie Fackler
605d8c9578 test-url: skip test when ssl module is unavailable 2010-10-12 11:02:45 -05:00
Augie Fackler
d9ce40564e test-url: remove trailing whitespace 2010-10-12 11:02:05 -05:00
Yuya Nishihara
42e1ec7a53 tests: asciify output of test-encoding-align.t 2010-10-02 22:59:29 +09:00
Yuya Nishihara
65ec94ef86 tests: accept \-escaped test output
It changes tsttest to accept expected outputs in python-style \-escapes.
It aims to avoid trouble with outputs for non-ascii, color and progress
tests.
2010-10-02 22:57:25 +09:00
Matt Mackall
b37df2f50a merge with stable 2010-10-12 16:25:38 -05:00
Augie Fackler
5fe5470142 revset: add id() and rev() to allow explicitly referring to changes by hash or rev 2010-10-11 09:44:19 -05:00
Augie Fackler
4a386faa07 revset: rename tagged() to tag() and allow it to take an optional tag name 2010-10-10 12:41:36 -05:00
Augie Fackler
0f661dc6d3 bookmarks: add revset for referencing bookmarks 2010-10-10 12:40:25 -05:00
Adrian Buehlmann
68a7a3545a tests: add testcase for --config format.dotencode=false 2010-10-11 11:17:48 +02:00
Matt Mackall
61e35e253a fetch: fix and document exit codes (issue2356) 2010-10-11 14:39:13 -05:00
Brodie Rao
c97e40185c convert/darcs: support changelogs with bytes 0x7F-0xFF (issue2411)
This is a followup to dd4fb29994d3, which only fixed the conversion of
patches with UTF-8 metadata.

This patch allows a changelog to have any bytes with values
0x7F-0xFF. It parses the XML changelog as Latin-1 and uses
converter_source.recode() to decode the data as UTF-8/Latin-1.

Caveats:

- Since the convert extension doesn't provide any way to specify the
  source encoding, users are still limited to UTF-8 and Latin-1.

- etree will still complain if the changelog has bytes with values
  0x00-0x19. XML only allows printable characters.
2010-10-01 10:15:04 -05:00
Adrian Buehlmann
5fa66b2722 revset: fix #branch in urls for outgoing()
hg log -r 'outgoing(..)' ignored #branch in some cases.
This patch fixes it.

The cases where it misbehaved are now covered by the added
test-revset-outgoing.t
2010-10-05 11:34:13 +02:00
Mads Kiilerich
04a1302ca7 test-doctest: test the modules that contains doctests 2010-10-01 00:48:51 +02:00
Mads Kiilerich
916b2a0e20 url: verify correctness of https server certificates (issue2407)
Pythons SSL module verifies that certificates received for HTTPS are valid
according to the specified cacerts, but it doesn't verify that the certificate
is for the host we connect to.

We now explicitly verify that the commonName in the received certificate
matches the requested hostname and is valid for the time being.

This is a minimal patch where we try to fail to the safe side, but we do still
rely on Python's SSL functionality and do not try to implement the standards
fully and correctly. CRLs and subjectAltName are not handled and proxies
haven't been considered.

This change might break connections to some sites if cacerts is specified and
the certificates (by our definition) isn't correct. The workaround is to
disable cacerts which in most cases isn't much worse than it was before with
cacerts.
2010-10-01 00:46:59 +02:00
Patrick Mezard
a8f024ef25 patch: test and document a bit binary to regular file upgrade 2010-09-28 00:41:08 +02:00
Patrick Mezard
a9686ec545 patch: upgrade to git patch when removing binary file
Otherwise it may cause data loss when removing binary files in mq with
--git=auto.
2010-09-28 00:41:07 +02:00
Patrick Mezard
5468157807 patch: fix rename text to binary file (issue2400) 2010-09-27 22:47:10 +02:00
Mads Kiilerich
d6040e08e1 test-gendoc: mute gendoc stderr
Solaris had problems with zh_CN and warned "couldn't set locale correctly" on
stderr. We don't care.
2010-09-24 02:57:15 +02:00
Mads Kiilerich
8e2068d8b4 test-mq-symlinks: fix symlink handling on solaris
It seems like ln -s gets confused if an existing symlink is dangling:
$ rm -f a b; ln -s a b; ln -sf b b
ln: cannot create b: File exists

We now rely on rm instead of on ln -sf.
2010-09-24 02:52:12 +02:00
Mads Kiilerich
5f130ba1ac test-archive: fix touch datestamps
Backport ac3a256cdaf4 and cd415c06acaf to stable.
2010-09-24 02:49:09 +02:00
Patrick Mezard
42663f256e convert/darcs: improve unsupported format detection (issue2172) 2010-09-24 00:04:07 +02:00
Patrick Mezard
bc1ff8ebda bookmarks: fix _bookmarks/lookup() reentrancy issue (issue2016)
_bookmarks is loaded lazily and calls super.lookup(). Unfortunately, branch and
tags caches initializations also recurse in lookup() and end up trying to
access _bookmarks again. Massive confusion ensues.

I considered fixing all branches and tags cache loading to avoid recursing in
lookup() but it would add complexity to otherwise working code provided lookups
are performed on nodes or revnums.
2010-09-24 00:03:58 +02:00
Mads Kiilerich
48773bdeed log: include unmodified-in-merge files in log diff/stat (issue2383)
f02da4369319 assumed that walkchangerevs called prep with all relevant matched
filenames, but actually it only contains the names of files changed in the
relevant changeset. That meant that log diff/stat of merges missed the diff for
files only changed in the other branch.

This is a minimal fix for making sure we only use fns when we are following and
thus will have problems with merges anyway ...
2010-09-23 01:23:16 +02:00
Mads Kiilerich
b0f0118486 tests: fix unzip -l variability fix
01-01-1980 slipped through the grep.
2010-09-23 01:51:17 +02:00
Matt Mackall
0e166af1f9 tests: fix unzip -l variability 2010-09-22 17:13:49 -05:00
Patrick Mezard
23ced90ea0 mq: always require --force when pushing patches (issue2363)
--force was not necessary when passing --rev since cb494d252290, but this
behaviour is usually harmful when branch names are passed instead of explicit
revisions.
2010-09-22 23:51:10 +02:00
Patrick Mezard
aebd1a7052 context: fix filectx.undelete() (issue2388) 2010-09-21 23:14:58 +02:00
Matt Mackall
25cfe14ed3 tests: fix hgweb template change 2010-09-20 17:01:12 -05:00
Patrick Mezard
0988572cc6 convert/svn: fix broken symlink renames in svn sink 2010-09-20 21:46:39 +02:00
Patrick Mezard
e043450e1d rename: do not overwrite existing broken symlinks 2010-09-20 21:46:39 +02:00
Patrick Mezard
21f3e10fb9 patch: do not overwrite broken untracked symlinks 2010-09-20 21:42:11 +02:00
Patrick Mezard
2d21e62e9b patch: fix target when patching broken symlinks (issue2368) 2010-09-20 21:42:11 +02:00
Brodie Rao
04db466f58 revset: handle re.compile() errors in grep()
Raise error.ParseError instead of allowing re.error to bubble up.
2010-09-17 10:21:02 -05:00
Martin Geisler
4152cae060 archive: set date to 1980 for very old zip files
The zip file format stores the date using "MS-DOS format" which
apparently means that they use 1980 as their epoch. Python's zipfile
module emits deprecation warnings of this form

  /usr/lib/python2.6/zipfile.py:1108: DeprecationWarning: struct
  integer overflow masking is deprecated
    self.fp.write(zinfo.FileHeader())
  /usr/lib/python2.6/zipfile.py:1108: DeprecationWarning: 'H' format
  requires 0 <= number <= 65535
    self.fp.write(zinfo.FileHeader())
  /home/mg/src/mercurial-crew/mercurial/archival.py:169:
  DeprecationWarning: struct integer overflow masking is deprecated
    self.z.close()
  /home/mg/src/mercurial-crew/mercurial/archival.py:169:
  DeprecationWarning: 'H' format requires 0 <= number <= 65535
    self.z.close()

when it is given such old timestamps. This fixes this by silently
clamping the date to 1980.
2010-09-20 15:33:39 +02:00
Steve Borho
3e9e61ae68 test-eol-update: record new results as correct
Changeset 63043d17c14b changed the result of this test. The 'hg update 0'
command, which causes a merge of modified a.txt, now leaves a.txt in the
EOLN format specified by .hgeol as it was committed in revision 0.

Previously, it used the .hgeol contents from the working directory before the
update.
2010-09-17 12:44:35 -05:00
Brodie Rao
1833e73f70 convert/darcs: handle non-ASCII metadata in darcs changelog (issue2354)
Given a commit author or message with non-ASCII characters in a darcs
repo, convert would raise a UnicodeEncodeError when adding changesets
to the hg changelog.

This happened because etree returns back unicode objects for any text
it can't encode into ASCII. convert was passing these objects to
changelog.add(), which would then attempt encoding.fromlocal() on
them.

This patch ensures converter_source.recode() is called on each piece
of commit data returned by etree.

(Also note that darcs is currently encoding agnostic and will print
out whatever is in a patch's metadata byte-for-byte, even in the XML
changelog.)
2010-09-10 09:30:50 -05:00