Hi, I've decided not to support arbitrary command-line options in the instruction sheet. A typical instruction sheet will looks like this (inspired heavily by the rebase -i instruction sheet format): pick 3b36854 t: add tests for cloning remotes with detached HEAD pick 61adfd3 consider only branches in guess_remote_head pick 8537f0e submodule add: test failure when url is not configured in superproject pick 4d68932 submodule add: allow relative repository path even when no url is set pick f22a17e submodule add: clean up duplicated code pick 59a5775 make copy_ref globally available pick c1921c1 clone: always fetch remote HEAD For persisting one set of options for every "git cherry-pick"/ "git revert" invocation, I've decided to use a simple "key = value" format and put it in .git/sequencer/opts (to sit beside .git/sequencer/head and .git/sequencer/todo). For strategy-option, I thought it would be cute to separate the various options using ' | '. So, it'll look something like this in the end: signoff = true mainline = 1 strategy-option = recursive | ours The implementation is a little rough around the edges, but I'm pretty happy with the overall design: it looks like a scaled-down version of parse-options. Quite a lot of context is missing (where did sequencer.h come from?!), but I hope it's clear enough to convey the idea. Thanks for reading. Ramkumar Ramachandra (1): revert: Persist per-session opts builtin/revert.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ sequencer.h | 8 +++ 2 files changed, 151 insertions(+), 0 deletions(-) -- 1.7.5.GIT -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html