-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Teach git-commit about commit message templates.
These are useful in organizations that enforce particular formats for commit messages, e.g., to specify bug IDs or test plans. Use of the template is not enforced; it is simply used as the initial content when the editor is invoked. Signed-off-by: Steven Grimm <koreth@midwinter.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
- Loading branch information
Steven Grimm
authored and
Junio C Hamano
committed
Jul 25, 2007
1 parent
af66366
commit d1cc130
Showing
6 changed files
with
163 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright (c) 2007 Steven Grimm | ||
# | ||
|
||
test_description='git-commit | ||
Tests for selected commit options.' | ||
|
||
. ./test-lib.sh | ||
|
||
commit_msg_is () { | ||
test "`git log --pretty=format:%s%b -1`" = "$1" | ||
} | ||
|
||
# A sanity check to see if commit is working at all. | ||
test_expect_success 'a basic commit in an empty tree should succeed' ' | ||
echo content > foo && | ||
git add foo && | ||
git commit -m "initial commit" | ||
' | ||
|
||
test_expect_success 'nonexistent template file should return error' ' | ||
echo changes >> foo && | ||
git add foo && | ||
! git commit --template "$PWD"/notexist | ||
' | ||
|
||
test_expect_success 'nonexistent template file in config should return error' ' | ||
git config commit.template "$PWD"/notexist && | ||
! git commit && | ||
git config --unset commit.template | ||
' | ||
|
||
# From now on we'll use a template file that exists. | ||
TEMPLATE="$PWD"/template | ||
|
||
test_expect_success 'unedited template should not commit' ' | ||
echo "template line" > "$TEMPLATE" && | ||
! git commit --template "$TEMPLATE" | ||
' | ||
|
||
test_expect_success 'unedited template with comments should not commit' ' | ||
echo "# comment in template" >> "$TEMPLATE" && | ||
! git commit --template "$TEMPLATE" | ||
' | ||
|
||
test_expect_success 'a Signed-off-by line by itself should not commit' ' | ||
! GIT_EDITOR=../t7500/add-signed-off git commit --template "$TEMPLATE" | ||
' | ||
|
||
test_expect_success 'adding comments to a template should not commit' ' | ||
! GIT_EDITOR=../t7500/add-comments git commit --template "$TEMPLATE" | ||
' | ||
|
||
test_expect_success 'adding real content to a template should commit' ' | ||
GIT_EDITOR=../t7500/add-content git commit --template "$TEMPLATE" && | ||
commit_msg_is "template linecommit message" | ||
' | ||
|
||
test_expect_success '-t option should be short for --template' ' | ||
echo "short template" > "$TEMPLATE" && | ||
echo "new content" >> foo && | ||
git add foo && | ||
GIT_EDITOR=../t7500/add-content git commit -t "$TEMPLATE" && | ||
commit_msg_is "short templatecommit message" | ||
' | ||
|
||
test_expect_success 'config-specified template should commit' ' | ||
echo "new template" > "$TEMPLATE" && | ||
git config commit.template "$TEMPLATE" && | ||
echo "more content" >> foo && | ||
git add foo && | ||
GIT_EDITOR=../t7500/add-content git commit && | ||
git config --unset commit.template && | ||
commit_msg_is "new templatecommit message" | ||
' | ||
|
||
test_expect_success 'explicit commit message should override template' ' | ||
echo "still more content" >> foo && | ||
git add foo && | ||
GIT_EDITOR=../t7500/add-content git commit --template "$TEMPLATE" \ | ||
-m "command line msg" && | ||
commit_msg_is "command line msg<unknown>" | ||
' | ||
|
||
test_expect_success 'commit message from file should override template' ' | ||
echo "content galore" >> foo && | ||
git add foo && | ||
echo "standard input msg" | | ||
GIT_EDITOR=../t7500/add-content git commit \ | ||
--template "$TEMPLATE" --file - && | ||
commit_msg_is "standard input msg<unknown>" | ||
' | ||
|
||
test_done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
#!/bin/sh | ||
echo "# this is a new comment" >> "$1" | ||
echo "# and so is this" >> "$1" | ||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#!/bin/sh | ||
echo "commit message" >> "$1" | ||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#!/bin/sh | ||
echo "Signed-off-by: foo <bar@frotz>" >> "$1" | ||
exit 0 |