Johannes Schindelin schrieb:
On Mon, 24 Sep 2007, Junio C Hamano wrote:
do_next () {
test -f "$DOTEST"/message && rm "$DOTEST"/message
test -f "$DOTEST"/author-script && rm "$DOTEST"/author-script
+ test -f "$DOTEST"/amend && rm "$DOTEST"/amend
As you do not check the error from "rm", how are these different from rm
-f "$DOTEST/frotz"?
The difference: the user will not see many irritating error messages.
I changed this code to use a newly written function "remove_if_exists",
which die()s if the file exists and could not be removed.
Why? rm -f does nothing if the file does not exist, and fails if it cannot
remove an existing file. It all boils down to:
rm -f "$DOTEST"/message "$DOTEST"/author-script \
"$DOTEST"/amend || exit
# This is like --amend, but with a different message
eval "$author_script"
export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
$USE_OUTPUT git commit -F "$MSG" $EDIT_COMMIT
;;
The "export" here makes me somewhat nervous -- no chance these
leak into the next round?
I am somewhat wary: I get quoting wrong all the time. Would
$USE_OUTPUT $author_script git commit -F "$MSG" $EDIT_COMMIT
work? I have the slight suspicion that it would not, since
eval "$author_script"
needs extra quoting in $author_script, no?
How about:
eval "$author_script"
GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
$USE_OUTPUT git commit -F "$MSG" $EDIT_COMMIT
and if you dislike that, put the two questionable lines in parenthesis.
-- Hannes
-
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