revset: don't error out if tokens parse as existing symbols
It makes perfect sense for tokens to parse as existing revset symbols
(revset functions), and doesn't break anything, since parsing symbols
as functions works correctly in the presence of parens. For example,
if "only" is a bookmark, this used to error out,
hg log -r "only(only, @)"
which shouldn't, as the inner "only" is unambiguously not a function.
So we just remove the symbolset function and replace its calling site
with the stringset function.
For the tests, we confirm that "date" and "only" are both parsed as
revision names both inside revset expressions (e.g. an expression
containing ::) and inside old-style revision expressions (e.g. those
containing the name of the revision alone).
http://mercurial.selenic.com/bts/issue1502
Initialize repository
$ hg init foo
$ touch foo/a && hg -R foo commit -A -m "added a"
adding a
$ hg clone foo foo1
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo "bar" > foo1/a && hg -R foo1 commit -m "edit a in foo1"
$ echo "hi" > foo/a && hg -R foo commit -m "edited a foo"
$ hg -R foo1 pull -u
pulling from $TESTTMP/foo (glob)
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
not updating: not a linear update
(merge or update --check to force update)
$ hg -R foo1 book branchy
$ hg -R foo1 book
* branchy 1:e3e522925eff
Pull. Bookmark should not jump to new head.
$ echo "there" >> foo/a && hg -R foo commit -m "edited a again"
$ hg -R foo1 pull
pulling from $TESTTMP/foo (glob)
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
$ hg -R foo1 book
* branchy 1:e3e522925eff