From: Matthieu Moy Date: Wed, 03 Jun 2015 17:38:31 GMT Subject: Re: [PATCH/RFCv4 2/2] git rebase -i: warn about removed commits Message-ID: In-Reply-To: <1433331859-24832-2-git-send-email-remi.galan-alfonso@ensimag.grenoble-inp.fr> Galan Rémi writes: > Check if commits were removed (i.e. a line was deleted) and print > warnings or abort git rebase depending on the value of the > configuration variable rebase.missingCommits. Spelled missingCommitsCheck everywhere else. > +rebase.missingCommitsCheck:: > + If set to "warn" print warnings about removed commits in If set to warn, print (comma). Here and below > + interactive mode. If set to "error" print the warnings and > + abort the rebase. If set to "ignore" no checking is > + done. "ignore" by default. > +# Print the list of the SHA-1 of the commits > +# from a todo list in a file. > +# $1: todo-file, $2: outfile > +todo_list_to_sha_list () { > + git stripspace --strip-comments <"$1" | while read -r command sha1 rest I'd split the line in two: git stripspace --strip-comments <"$1" | while read -r command sha1 rest > + do > + case $command in > + x|"exec") > + ;; > + *) > + printf "%s\n" "$sha1" > + ;; > + esac > + done >"$2" > +} You're using $1 and $2 only to redirect input and output. I would find it more elegant to write todo_list_to_sha_list as a filter, and do the redirection in the call site (to keep the option of using todo_list_to_sha_list in a pipe). > +check_commits You're not really checking commits, but rather the todo-list. > +Use git --config rebase.missingCommitsCheck to change the level of warnings (ignore, warn, error). Long line. Please, wrap the message to <80 columns. -- Matthieu Moy http://www-verimag.imag.fr/~moy/