Johannes Schindelin wrote:
Ah, I missed that. But IIRC your patch does not wrap that logic behind
test ! -z "$templatefile", right? So this is my modified suggestion:
test ! -z "$templatefile" && {
grep -vie '^Signed-off-by:' < "$GIT_DIR"/COMMIT_MSG" > "$GIT_DIR"/tmp1
grep -ve '^#' < "$templatefile" > "$GIT_DIR"/tmp1
trap 'rm "$GIT_DIR"/tmp[12]' 0
cmp "$GIT_DIR"/tmp[12] &&
die "Unchanged message; will not commit"
}
So you are suggesting I do this in addition to the existing git-commit
stripping of Signed-off-by: lines? I can certainly do that, but I didn't
want to make two passes over the commit message doing exactly the same
stripping.
Hmm, maybe I should outline my understanding of the current (unpatched)
behavior and what I want it to do. Currently:
* Strip off all comment lines (happens when COMMIT_MSG is created)
* Strip off all Signed-off-by: lines
* Trim whitespace
* If the result has no content (`wc -l` == 0), abort.
With the patch, my intent was:
* Strip off all comment lines
* Strip off all Signed-off-by: lines
* Trim whitespace
* If the result has no content (! -s file), abort.
* If a template file was specified:
* Strip off all comment and Signed-off-by: lines from the template
* Trim whitespace from the template
* If the resulting trimmed template is the same as the trimmed commit
message, abort.
So I guess before getting to the specifics of the code, I'll ask: does
the above make sense as a design? I wanted to preserve the existing
behavior in the absence of a template.
Since the existing code is already stripping Signed-off-by: lines to
test for a zero-length commit message, I figured I should reuse that
work. However, it's no big deal to do it twice if people feel that
results in more readable code -- certainly no human will ever notice the
time it takes to re-grep the commit message.
-Steve
-
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