Re: [PATCH] rebase -i: avoid 'git reset' when possible
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Mar 3, 2009, 09:24 UTC
- Message-ID
- <alpine.DEB.1.00.0903031008580.6399@intel-tinevez-2-302>
- In-Reply-To
- <7v1vtfl8xi.fsf@gitster.siamese.dyndns.org>
Hi,
On Mon, 2 Mar 2009, Junio C Hamano wrote:
Show 27 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > > Or even > > > > current=$ONTO > > fd=3 > > while read command sha1 rest > > do > > case "$fd,$command,$current" in > > 3,pick,"$sha1"*|t,p,"$sha1"*) > > current=$sha1 > > ;; > > *) > > fd=1 > > ;; > > esac > > echo "$command $sha1 $rest" >&$fd > > done < "$TODO" > "$TODO.new" 3>> "$DONE" && > > mv "$TODO.new" "$TODO" > > > > Hmm? > > Certainly. > > Even though "3 means we haven't found a non-pick yet" feels slightly > hacky, the logic is contained in this small loop and I do not see it as a > problem.
I'll add a one line comment.
> As long as you are sure $ONTO and all sha1 can be compared without > running them through rev-parse, avoiding rev-parse per iteration is a > very attractive optimization.
Yes, that is the beauty of abbreviated commit names: they are guaranteed to be unique, unless other objects were added since, which is not the case at this point.
Ciao, Dscho