commands: use ctx.getfileset instead of fileset.getfileset
repoview: use repo.revs() instead of a private revset method

Breaks an import cycle.
localrepo: make it clear that changegroupsubset doesn't take bases but roots

changegroupsubset will take the parents of the roots to find the bases.

Other parts of Mercurial do not expect that, and a result of that is that some
bundles contain more changesets than necessary.

No real changes here - just renaming a parameter to document what it is.
shelve: publicancestors do not have to visit nullrev

Not visiting nullrev seems more correct and might be a minor optimization.
shelve: really pass publicancestors to changegroupsubset - not the parents

publicancestors returned the parents of the public ancestors ... and
changegroupsubset used the parents of these as base for the bundle. That gave
bundles with one layer of changesets more than necessary.
shelve: mention walk options in help
shelve: mention FILE options in help

Shelve do normally take a list of files or patterns to shelve and the command
summary should thus show [FILE]...

Note: --delete is a bit special and interpret the parameters as a list of
shelve names. This change makes that even less obvious from the help. Too bad
- we can't please everyone.
shelve: add 'changes to' prefix to default shelve message

The shelved changes _could_ perhaps be amended to the parent changeset but it
_is_ not the parent changeset. Using the description from the parent changeset
is thus wrong and confusing.

Instead, add a 'changes to' prefix.
shelve: be quiet when unshelve pulls from the shelve bundle

unshelve was quite verbose and it was hard for a user to follow what really was
going on. It ended up saying 'added 1 changesets' ... but the user just
expected and got pending changes and never saw any changeset.

The use of bundles is an implementation detail that we don't have to leak here.

Pulling is quite verbose, optimized for pulling many changesets from remote
repos - that is not the case here.

Instead, set the quiet flag when pulling the bundle - not only when temporarily
committing pending changes.

The 'finally' restore of ui.quiet is moved to the outer try/finally used for
locking.
shelve: status messages from unshelve

It was hard for the user to know what was going on when unshelving - especially
if the user had to resolve conflicts and thus got to see the intermediate
states.

Seeing that pending changes was gone could scare the user, make him panic, and
do stuff that really made him lose data.

Merging (both when rebasing and with pending changes) also requires some
understanding of where in the process you are and what you are merging.

To help the user we now show a couple of status messages (when relevant):
  temporarily committing pending changes (restore with 'hg unshelve --abort')
  rebasing shelved changes
shelve: better (and slightly redundant) test coverage for unshelve conflicts
revset: added docstring to baseset class
revset: added __add__ method to baseset class
revset: minor changes adding baseset to revsets

Changed bits of code to work with baseset implementations.
convert: make subversion revsplit more stable when meeting revisions without @

revsplit would crash for instance if given a subversion string without @ ...
and that could somehow happen when playing around with convert.
convert: secret config option for disabling debugsvnlog

Subversion issues involving svn log such as d54467c1a198 can be tricky to
debug when it is run in an 'hg debugsvnlog' sub process. Debugging is simpler
when convert only uses one process.

With this change convert will invoke the svn log directly when setting
  [convert]
  svn.debugsvnlog = False

This is intentionally not documented.