Hi Junio,
On Thu, 13 Nov 2014, Junio C Hamano wrote:
Johannes Schindelin [off-list ref] writes:
quoted
diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh
index f4da20a..ba002a9 100755
--- a/t/t5516-fetch-push.sh
+++ b/t/t5516-fetch-push.sh
@@ -1330,4 +1330,21 @@ test_expect_success 'fetch into bare respects core.logallrefupdates' '
)
'
+test_expect_success 'receive.denyCurrentBranch = updateInstead' '
+ git push testrepo master &&
+ (cd testrepo &&
+ git reset --hard &&
+ git config receive.denyCurrentBranch updateInstead
+ ) &&
+ test_commit third path2 &&
+ git push testrepo master &&
+ test $(git rev-parse HEAD) = $(cd testrepo && git rev-parse HEAD) &&
+ test third = "$(cat testrepo/path2)" &&
+ (cd testrepo &&
+ git update-index --refresh &&
+ git diff-files --quiet &&
+ git diff-index --cached HEAD --
+ )
+'
+
This new feature has two sides. Update when we can and more
importantly fail the update safely. This tests the "success" case,
but not the "safely fail" one.
For the latter "test_must_fail git push" on the sending side, and
"original HEAD stays the same and the working tree changes are
preserved when there are local changes before the push" on the
receiving side needs to be tested.
Right.
I have amended this for the upcoming v4 (but I'll wait whether there are
other things I need to change before submitting that):
-- snipsnap --
diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh
index ba002a9..b8df39c 100755
--- a/t/t5516-fetch-push.sh
+++ b/t/t5516-fetch-push.sh
@@ -1343,8 +1343,12 @@ test_expect_success 'receive.denyCurrentBranch =
updateInstead' '
(cd testrepo &&
git update-index --refresh &&
git diff-files --quiet &&
- git diff-index --cached HEAD --
- )
+ git diff-index --cached HEAD -- &&
+ echo changed > path2 &&
+ git add path2
+ ) &&
+ test_commit fourth path2 &&
+ test_must_fail git push testrepo master
'
test_done