bundle2: fix configuration name mismatch

During pulls bundle2 was checking server.bundle2, but during pushes it was
checking experimental.bundle2. This makes them both experimental.bundle2.
exchange: propagate arguments to the _getbundleextrapart function

The arguments was wrongly propagated (again).

--HG--
extra : amend_source : 7453c3adc0701c77958bb9e796b3d6bf419af46e
extra : histedit_source : 2570fe46dfa189f77efbf2705e8d172c873f3164
exchange: fix bad indentation

Those two lines where double indented for no good reasons.

--HG--
extra : rebase_source : af6c8037f70f6c7234f80aa18a7e6627b11b6acd
bundle2: fix bundle2 pulling all revs on empty pulls

When bundle2 was enabled, if hg pull had no commits to pull, it would print
'no changes found' and then download the entire repository from the server. This
was caused by heads and common being set to None, which gets treated as
heads=cl.heads() and common=[nullid], which means download the entire repo.

Pulling bundles without a changegroup is a valid use case (like if we're just
updating bookmarks), so this modifes the bundle code to allow not adding
changegroups.

--HG--
extra : source : a487d6c60923170e59c4ad5ba008bebb92b77276
changegroup: refactor outgoing logic into a function

Extensions that add to bundle2 will want to know which commits are outgoing so
they can bundle data that is appropriate to those commits. This moves the logic
for figuring that out to a separate function so extensions can do the same
computation.

--HG--
extra : amend_source : 85900ffb378967c3310efa3a095c94e457c455ba
mergestate: consistently set variables to None

Some code branches and exceptional circumstances such as empty
mergestate files could result in mergestate._local and
mergestate._other not being defined or reset to None. These variables
are now correctly set to None when they should be.

--HG--
extra : amend_source : 3e11ae2a56c1dfc642aec456ac9b83370b195359
resolve: use early continue and deindent
resolve: split test

Part of test-resolve.t is split into multiple tests to create an
injection point for new tests that will be added in subsequent patches.
resolve: abort when not applicable (BC)

The resolve command is only relevant when mergestate is present.
This patch will make resolve abort when no mergestate is present.

This change will let people know when they are using resolve when they
shouldn't be. This change will let people know when their use of resolve
doesn't do anything.

Previously, |hg resolve -m| would allow mergestate to be created. This
patch now forbids that. Strictly speaking, this is backwards
incompatible. The author of this patch believes creating mergestate via
resolve doesn't make much sense and this side-effect was unintended.

--HG--
extra : amend_source : 7ffffbc8c9108e9109e0e9af7093c9e442e6a3be
resolve: print warning when no work performed (issue4208)

Previously, if the paths specified as arguments to |hg resolve| were
invalid, they were silently ignored and a no-op would ensue.

This patch fixes that in some scenarios.

If none of the paths specified to |hg resolve| match a path that is in
mergestate, a warning will be emitted.

Ideally, a warning would be emitted for every path/pattern specified
that doesn't match anything. To achieve this would require significant
refactoring of the matching subsystem. That work is beyond the scope of
this patch series. Something is better than nothing and this patch
gets us something.
resolve: print message when no unresolved files remain (issue4214)

When using resolve, users often have to consult with the output of |hg
resolve -l| to see if any unresolved files remain. This step is tedious
and adds overhead to resolving.

This patch will notify a user if there are no unresolved files remaining
after executing |hg resolve|::

    no unresolved files; you may continue your unfinished operation

The patch stops short of telling the user exactly what command should be
executed to continue the unfinished operation. That is because this
information is not currently captured anywhere. This would make a
compelling follow-up feature.

--HG--
extra : amend_source : 57331ee9860df7d0814d4e052d805b10925ea334
resolve: simplify "finished" message

The recently introduced message was:

  no unresolved files; you may continue your unfinished operation

This had three problems:

- looks a bit like an error message because it's not saying "we've
  just resolved the last file"
- refers to "unfinished operation", which won't be the case with
  "update" or "merge"
- introduces semicolons to error messages, which is stylistically
  questionable

I've simplified this to:

  no more unresolved files

In the future, if we want to prompt someone to continue a particular operation, we should use
a hint style:

  no more unresolved files
  (use 'hg graft --continue' to finish grafting)
merge: simplify mergestate iter

--HG--
extra : rebase_source : 054b059e2487853a77deb097c59806c6a608ac69
merge: make debug output slightly more helpful by including message for action

Make recently introduced messages more useful. Instead of:
  f1: g
  f2: m
say:
  f1: remote is newer -> g
  f2: versions differ -> m

--HG--
extra : rebase_source : 743e7492b0b9fddaececcc5fb35c79bfdc6ab6f6
mq: eliminate unused variable for test-check-pyflakes.t

"user" in "fold()" has become useless since 49148d7868df.

--HG--
extra : rebase_source : a08381bc4253bcbe3d54dc4df125967dd3f871fb
tests: ignore "undefined name 'memoryview'" pyflakes error on earlier Python

Before this patch, "test-check-pyflakes.t" shows unexpected "undefined
name 'memoryview'" error for "mercurial/util.py" on Python 2.6.x or
earlier, because they don't define symbol 'memoryview'.

This patch introduces excluding patterns into "filterpyflakes.py" to
ignore "undefined name 'memoryview'" pyflakes error on Python 2.6.x or
earlier

--HG--
extra : rebase_source : 0c21d02437a3a5571b53940d2658ea454f8a9138
merge: prevent simplemerge from mutating label list

simplemerge was using list.pop() to remove items from the labels list. This
mutated the list and made it unusable by other calls (for instance, it might be
used in both the premerge and actual merge stages).

--HG--
extra : rebase_source : d7143c41e7f47181de37655cff5dfaca44817237
merge: define conflict marker labels in filemerge()

Moves the conflict marker definition up to filemerge, so it gets applied to all
merge strategies, and so in a future patch we can manipulate the markers.

--HG--
extra : rebase_source : 315e1253713efec9620ac7271b60d1d40407add0
journal: set Abort hint when failing due to an abandoned transaction

--HG--
extra : rebase_source : c86d4282182f09a0343401edaf5c966fccfc3890
extra : amend_source : c78f3015461789dfdd8c898f03349b9d01417f91
largefiles: include largefiles when doing log on a directory (issue4241)

The matchers _files had to include both the real root and the standin version
of the root.

--HG--
extra : rebase_source : 25b06fd8d8b15f6670492bf57e4544aba8a8e74c