From: Junio C Hamano Date: Thu, 12 Jun 2008 05:16:37 GMT Subject: Re: [RFCv2/FYI] git-sequencer.txt Message-ID: <7vabhr9qru.fsf@gitster.siamese.dyndns.org> In-Reply-To: <20080612002258.GC7200@leksak.fem-net> Stephan Beyer writes: > Note that the sanity check fails, if you use this option > and an instruction like `edit` or `pause`. > > --onto=:: > Checkout given commit or branch before sequencing. > If you provide a branch, sequencer will make the provided > changes on the branch, i.e. the branch will be changed. I think you called this --onto by modeling after rebase, but I am not sure if that is a good generic naming. Worse, "a branch that is not the current one that is rebased" in rebase is not specified with "--onto" but with the extra argument. Is checking out that branch considered as part of the sequencing operation, or it is something that happens before the sequencing? In other words, if a sequencing stops and the user says "sequencer --abort", where does it take the user back to? The state the is checked out, or the state before that checkout happened? Can't the front-end emit an insn to checkout or detach as the first insn? By the way, is it specified if sequencer will always work by: (1) remember the initial branch; (2) detach the HEAD; (3) run the operation; (4) and finally (unless the user says --abort) reattaching the original branch to the resulting HEAD? That would mean the sequencer would essentially munge only one branch (unless started from a detached HEAD state). I think this is a reasonable design decision (and a limitation) for the currently expected front-ends, but I think this is a perfectly sane backend for filter-branch (without any tree or content munging), and this limitation might later come back and bite us. > --skip:: > Restart the sequencing process by skipping the current patch. "patch"? What is the set of insn that can possibly give control back and give you a chance to say "--skip"? - pick can conflict and --skip would mean "reset to the tree before the pick and continue on to the next insn"; - Same goes for merge and patch (the semantics of "squash " is fuzzy to me); - pause can give control back to you. What should --skip do? I guess "no-op" is the right answer. > --status:: > Show the current status of git-sequencer and what > operations can be done to change that status. Meaning "what insns have we done, what insn were we in the middle of executing, and what insns are still remaining"? > merge [] ... :: > Merge commits into HEAD. > + > A commit can also be given by a mark, if prefixed with a colon. > + > If you do not provide a commit message (using `-F`, `-m`, `--reference` > or `--standard`), an editor will be invoked. > + > See the following list and 'GENERAL OPTIONS' for values of `