Git doesn't want to modify the network protocol to support passing
data from the git push client to the server. Work around this by
embedding option data into a new style of reference specification:
refs/for/master%r=alice,cc=bob,cc=charlie,topic=options
is now parsed by the server as:
- set topic to "options"
- CC charlie and bob
- add reviewer alice
- for branch refs/heads/master
If % is used the "extra information" after the branch name is
parsed as options with args4j. Each option is delimited by ",".
Selecting publish vs. draft should be done with options draft or
publish, appearing anywhere in the refspec after the % marker:
refs/for/master%draft
refs/for/master%draft,r=alice
refs/for/master%r=alice,draft
refs/for/master%r=alice,publish
Change-Id: I895bd1218c2099b5b45cac943039bbd12565370c