On Sat, Apr 15, 2023 at 12:07 PM Elijah Newren <newren@xxxxxxxxx> wrote: <snip> > > What happens if they add an --author filter? > > git fast-export accepts full revision ranges, including ones that make > no sense like this. We could add patches to exclude such options, to > both replay and fast-export. Or just document that they make no > sense. > > To answer the question as asked, though, let me first provide a little > background: for a commit A with parent B, git-replay checks whether > the parent of the current commit (i.e. for A that'd be B) has been > replayed (as B'). If so, it will make the parent of A' be B'. If > there is no B' (e.g. because B was part of "upstream" and thus wasn't > replayed), it makes the parent of A' be whatever is passed to --onto. > This allows git-replay to not only rebase/replay a linear set of > patches, but a partially or even fully divergent set of branches. A small clarification, which only matters to future work and not this particular series: the above description where ONTO is the fallback for a lack of B', is for first parent only. For a second (or later) parent of A, which we'll refer to as C, if C has not been replayed as part of this operation, then we simply use the unmodified C as the second (or later) parent of A'.