exthelper: support the option argument when registering a command
Largefiles uses this 5th argument with push and pull, so this will be tested in
the next commit. I assume the reason for unrolling and reforming the tuple in
each finalxxxsetup() is to validate that something proper was passed in when
registering. But it's better to explode when decorating than during the delayed
actual registration.
testing topic with shelve extension
------------------------------------
$ . "$TESTDIR/testlib/topic_setup.sh"
$ hg init repo
$ cd repo
$ cat <<EOF >>.hg/hgrc
> [extensions]
> shelve=
> EOF
$ touch a
$ echo "Hello" >> a
$ hg topic "testing-shelve"
marked working directory as topic: testing-shelve
$ hg topic
* testing-shelve (0 changesets)
$ hg ci -m "First commit" -A
adding a
active topic 'testing-shelve' grew its first changeset
(see 'hg help topics' for more information)
$ hg topic
* testing-shelve (1 changesets)
$ echo " World" >> a
$ hg stack
### topic: testing-shelve
### target: default (branch)
s1@ First commit (current)
shelve test
-----------
$ hg shelve
shelved as default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg topic
* testing-shelve (1 changesets)
$ hg stack
### topic: testing-shelve
### target: default (branch)
s1@ First commit (current)
unshelve test
-------------
$ hg unshelve
unshelving change 'default'
$ hg topic
* testing-shelve (1 changesets)
$ hg stack
### topic: testing-shelve
### target: default (branch)
s1@ First commit (current)