Re: [PATCH v3 1/1] Add another option for receive.denyCurrentBranch
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Nov 13, 2014, 19:21 UTC
- Message-ID
- <alpine.DEB.1.00.1411132020570.13845@s15462909.onlinehome-server.info>
- In-Reply-To
- <xmqq7fyz2dlj.fsf@gitster.dls.corp.google.com>
Hi Junio,
On Thu, 13 Nov 2014, Junio C Hamano wrote:
Show 36 quoted lines
> Johannes Schindelin <johannes.schindelin@gmx.de> writes: > > > 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