From 9c7466fa248608ff8a91f8b4dca48dac7dda02d5 Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Wed, 24 May 2006 23:33:18 -0400 Subject: [PATCH 1/2] Verify git-commit provides a reflog message. The reflog message from git-commit should include the first line of the commit message as supplied by the user. Signed-off-by: Shawn O. Pearce Signed-off-by: Junio C Hamano --- t/t1400-update-ref.sh | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh index f6b076bafd..df3e993365 100755 --- a/t/t1400-update-ref.sh +++ b/t/t1400-update-ref.sh @@ -178,22 +178,36 @@ rm -f .git/$m .git/logs/$m expect test_expect_success \ 'creating initial files' \ - 'cp ../../COPYING COPYING && - git-add COPYING && + 'echo TEST >F && + git-add F && + GIT_AUTHOR_DATE="2005-05-26 23:30" \ GIT_COMMITTER_DATE="2005-05-26 23:30" git-commit -m add -a && - cp ../../Makefile COPYING && - GIT_COMMITTER_DATE="2005-05-26 23:41" git-commit -m change -a' + h_TEST=$(git-rev-parse --verify HEAD) + echo The other day this did not work. >M && + echo And then Bob told me how to fix it. >>M && + echo OTHER >F && + GIT_AUTHOR_DATE="2005-05-26 23:41" \ + GIT_COMMITTER_DATE="2005-05-26 23:41" git-commit -F M -a && + h_OTHER=$(git-rev-parse --verify HEAD) + rm -f M' + +cat >expect < 1117150200 +0000 commit: add +$h_TEST $h_OTHER $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150860 +0000 commit: The other day this did not work. +EOF +test_expect_success \ + 'git-commit logged updates' \ + 'diff expect .git/logs/$m' +unset h_TEST h_OTHER test_expect_success \ - 'git-cat-file blob master:COPYING (expect Makefile)' \ - 'git-cat-file blob master:COPYING | diff - ../../Makefile' + 'git-cat-file blob master:F (expect OTHER)' \ + 'test OTHER = $(git-cat-file blob master:F)' test_expect_success \ - 'git-cat-file blob master@{2005-05-26 23:30}:COPYING (expect COPYING)' \ - 'git-cat-file blob "master@{2005-05-26 23:30}:COPYING" \ - | diff - ../../COPYING' + 'git-cat-file blob master@{2005-05-26 23:30}:F (expect TEST)' \ + 'test TEST = $(git-cat-file blob "master@{2005-05-26 23:30}:F")' test_expect_success \ - 'git-cat-file blob master@{2005-05-26 23:42}:COPYING (expect Makefile)' \ - 'git-cat-file blob "master@{2005-05-26 23:42}:COPYING" \ - | diff - ../../Makefile' + 'git-cat-file blob master@{2005-05-26 23:42}:F (expect OTHER)' \ + 'test OTHER = $(git-cat-file blob "master@{2005-05-26 23:42}:F")' test_done From d7fb7a373a8ea4a8ecf6421be92226bab74f474e Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Wed, 24 May 2006 23:34:04 -0400 Subject: [PATCH 2/2] Test that git-branch -l works. If the user supplies -l to git-branch when creating a new branch then the new branch's log should be created automatically and the branch creation should be logged in that log. Further if a branch is being deleted and it had a log then also verify that the log was deleted. Test git-checkout -b foo -l for creating a new branch foo with a log and checking out that branch. Fixed git-checkout -b foo -l as the branch variable name was incorrect in the script. Signed-off-by: Shawn O. Pearce Signed-off-by: Junio C Hamano --- git-checkout.sh | 4 ++-- t/t3200-branch.sh | 31 ++++++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/git-checkout.sh b/git-checkout.sh index 360aabf9e3..564117f006 100755 --- a/git-checkout.sh +++ b/git-checkout.sh @@ -197,8 +197,8 @@ fi if [ "$?" -eq 0 ]; then if [ "$newbranch" ]; then if [ "$newbranch_log" ]; then - mkdir -p $(dirname "$GIT_DIR/logs/refs/heads/$branchname") - touch "$GIT_DIR/logs/refs/heads/$branchname" + mkdir -p $(dirname "$GIT_DIR/logs/refs/heads/$newbranch") + touch "$GIT_DIR/logs/refs/heads/$newbranch" fi git-update-ref -m "checkout: Created from $new_name" "refs/heads/$newbranch" $new || exit branch="$newbranch" diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh index c3de151942..5b04efc89d 100755 --- a/t/t3200-branch.sh +++ b/t/t3200-branch.sh @@ -14,7 +14,8 @@ test_expect_success \ 'prepare an trivial repository' \ 'echo Hello > A && git-update-index --add A && - git-commit -m "Initial commit."' + git-commit -m "Initial commit." && + HEAD=$(git-rev-parse --verify HEAD)' test_expect_success \ 'git branch --help should return success now.' \ @@ -32,4 +33,32 @@ test_expect_success \ 'git branch a/b/c should create a branch' \ 'git-branch a/b/c && test -f .git/refs/heads/a/b/c' +cat >expect < 1117150200 +0000 branch: Created from HEAD +EOF +test_expect_success \ + 'git branch -l d/e/f should create a branch and a log' \ + 'GIT_COMMITTER_DATE="2005-05-26 23:30" \ + git-branch -l d/e/f && + test -f .git/refs/heads/d/e/f && + test -f .git/logs/refs/heads/d/e/f && + diff expect .git/logs/refs/heads/d/e/f' + +test_expect_success \ + 'git branch -d d/e/f should delete a branch and a log' \ + 'git-branch -d d/e/f && + test ! -f .git/refs/heads/d/e/f && + test ! -f .git/logs/refs/heads/d/e/f' + +cat >expect < 1117150200 +0000 checkout: Created from master^0 +EOF +test_expect_success \ + 'git checkout -b g/h/i -l should create a branch and a log' \ + 'GIT_COMMITTER_DATE="2005-05-26 23:30" \ + git-checkout -b g/h/i -l master && + test -f .git/refs/heads/g/h/i && + test -f .git/logs/refs/heads/g/h/i && + diff expect .git/logs/refs/heads/g/h/i' + test_done