On Sun, Apr 15, 2012 at 11:33:03AM +0200, Clemens Buchacher wrote: > On Fri, Apr 13, 2012 at 02:45:07PM -0400, Neil Horman wrote: > > > > Add a command line switch to git-rebase to allow a user the ability to specify > > that they want to keep any commits in a series that are empty. > > Thanks. That should be useful. > > > +is_empty_commit() { > > + ptree=$(git rev-parse "$1"^{tree}) > > + pptree=$(git rev-parse "$1"^^{tree}) > > + return $(test "$ptree" = "$pptree") > > +} > > + > > What's the extra leading 'p' for? Any reason not to use 'tree' and > 'ptree'? > Hold-over from when I did this in C (pointer to tree vs. pointer to parent tree). I can remove the p though, as you right, it makes less sense in a shell > > pick_one () { > > ff=--ff > > + > > + if is_empty_commit $@ > > + then > > + empty_args="--allow-empty" > > + fi > > + > > case "$1" in -n) sha1=$2; ff= ;; *) sha1=$1 ;; esac > > You do not handle the case where pick_one is called with -n. I think you > need to move the case statement in front and then call is_empty_commit > $sha1. > > Not that it matters after this change, but in general using $@ without > quotes looks wrong to my eyes. > Ack, to both points. > > @@ -780,9 +792,17 @@ git rev-list $merges_option --pretty=oneline --abbrev-commit \ > > sed -n "s/^>//p" | > > while read -r shortsha1 rest > > do > > + > > + if test -z "$keep_empty" && is_empty_commit $shortsha1 > > + then > > + comment_out="# pick" > > + else > > + comment_out="pick" > > + fi > > + > > if test t != "$preserve_merges" > > then > > - printf '%s\n' "pick $shortsha1 $rest" >> "$todo" > > + printf '%s\n' "$comment_out $shortsha1 $rest" >> "$todo" > > How about setting comment_out="# " or comment_out="" instead and then > > printf '%s%s\n' "$comment_out" "pick $shortsha1 $rest" >> "$todo" > > That would read more natural to me. Yeah, I can do that > -- 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