Thomas Rast <trast@xxxxxxxxxxxxxxx> writes: > Thomas Rast wrote: >> test ! -s "$DOTEST"/upstream && REBASE_ROOT=t > > Actually, I think that test never worked (and it's clearly my fault). > > The corresponding 'echo $UPSTREAM > "$DOTEST"/upstream' just expanded > to 'echo > ...', resulting in a file containing a single newline, but > never a zero-length file. Duh. Since you never use the value stored in "$DOTEST/upstream" for anything else anyway, how about doing something like this instead? It would make the meaning of the file used as a state variable much clearer. It may break hooks and outside scripts that look at $DOTEST/upstream. I didn't check. The hunk in the middle is to protect you against an environment variable UPSTREAM the user may have before starting "rebase -i". There could be other state variables you added in recent commit d911d14 (rebase -i: learn to rebase root commit, 2009-01-02) that needs similar protection. Please check. git-rebase--interactive.sh | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git c/git-rebase--interactive.sh w/git-rebase--interactive.sh index 21ac20c..17cf0e5 100755 --- c/git-rebase--interactive.sh +++ w/git-rebase--interactive.sh @@ -456,7 +456,7 @@ get_saved_options () { test -d "$REWRITTEN" && PRESERVE_MERGES=t test -f "$DOTEST"/strategy && STRATEGY="$(cat "$DOTEST"/strategy)" test -f "$DOTEST"/verbose && VERBOSE=t - test ! -s "$DOTEST"/upstream && REBASE_ROOT=t + test -f "$DOTEST"/rebase-root && REBASE_ROOT=t } while test $# != 0 @@ -585,6 +585,7 @@ first and then run 'git rebase --continue' again." test -z "$ONTO" && ONTO=$UPSTREAM shift else + UPSTREAM= UPSTREAM_ARG=--root test -z "$ONTO" && die "You must specify --onto when using --root" @@ -611,7 +612,12 @@ first and then run 'git rebase --continue' again." echo "detached HEAD" > "$DOTEST"/head-name echo $HEAD > "$DOTEST"/head - echo $UPSTREAM > "$DOTEST"/upstream + case "$REBASE_ROOT" in + '') + rm -f "$DOTEST"/rebase-root ;; + *) + : >"$DOTEST"/rebase-root ;; + esac echo $ONTO > "$DOTEST"/onto test -z "$STRATEGY" || echo "$STRATEGY" > "$DOTEST"/strategy test t = "$VERBOSE" && : > "$DOTEST"/verbose -- 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