Hi Nguyen, Nguyen Thai Ngoc Duy wrote: > Hi, > > I'm rewriting rebase in C Oh. First two remarks that may or may not affect you: 1. rebase -i -p is reworked by Dscho: http://repo.or.cz/w/git/dscho.git?a=shortlog;h=refs/heads/rebase-i-p 2. sequencer, a C backend for git am and git rebase -i, actually exists http://repo.or.cz/w/git/sbeyer.git?a=shortlog;h=refs/heads/seq-builtin-dev although to even more lack of time the missing/non-perfect parts are not getting fewer. Both remarks regard "rebase -i" and not the am-based rebase, which means you are not getting into some kind of conflict with these other developments (or IOW: you are not doing already done work a second or third time) when you keep your rebase rewrite close to the original in sh. > and do not quite understand this code inside git-rebase.sh > > # If the $onto is a proper descendant of the tip of the branch, then > # we just fast forwarded. > if test "$mb" = "$branch" > then > echo >&2 "Fast-forwarded $branch_name to $onto_name." > move_to_original_branch > exit 0 > fi > > Anyone has an example how to make "git rebase" execute that code? Yes, "if the $onto is a proper descendant of the tip of the branch", then there are no commits that have to be rewritten. Rebasing can be done by simple fast-forwarding, i.e. setting the branch to another, yet existing commit. Example: * onto * onto, mybranch | | * * | | * mybranch => * | | * * | | Regards, Stephan -- 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