On Tue, Jul 02, 2019 at 02:37:42PM -0700, Junio C Hamano wrote:
> >  
> > +test_expect_success 'push --atomic also prevents branch creation' '
> > +   # Make up/master
> > +   d=$HTTPD_DOCUMENT_ROOT_PATH/atomic-branches.git &&
> > +   git init --bare "$d" &&
> > +   git --git-dir="$d" config http.receivepack true &&
> > +   up="$HTTPD_URL"/smart/atomic-branches.git &&
> > +   test_commit atomic1 &&
> > +   test_commit atomic2 &&
> > +   git push "$up" master &&
> > +   # Make master incompatible with up/master
> > +   git reset --hard HEAD^ &&
> > +   # Add a new branch
> > +   git branch atomic &&
> > +   # --atomic should roll back creation of up/atomic
> > +   test_must_fail git push --atomic "$up" master atomic &&
> > +   git ls-remote "$up" >up-remotes &&
> > +   test_must_fail grep atomic up-remotes
> 
> Don't use test_must_fail on non-git things.  We are not in the
> business of catching segfaulting system programs.

Done:
  ! grep atomic up-remotes

> 
> > +'
> > +
> > +test_expect_success 'push --atomic shows all failed refs' '
> > +   # Make up/master, up/allrefs
> > +   d=$HTTPD_DOCUMENT_ROOT_PATH/atomic-failed-refs.git &&
> > +   git init --bare "$d" &&
> > +   git --git-dir="$d" config http.receivepack true &&
> > +   up="$HTTPD_URL"/smart/atomic-failed-refs.git &&
> > +   test_commit allrefs1 &&
> > +   test_commit allrefs2 &&
> > +   git branch allrefs &&
> > +   git push "$up" master allrefs &&
> > +   # Make master and allrefs incompatible with up/master, up/allrefs
> > +   git checkout allrefs &&
> > +   git reset --hard HEAD^ &&
> > +   git checkout master &&
> > +   git reset --hard HEAD^ &&
> > +   # --atomic should complain about both master and allrefs
> > +   test_must_fail git push --atomic "$up" master allrefs >&output &&
> 
> Don't rely on ">&output", which is an unnecessary bash-ism here.  It
> breaks test run under shells like dash.
> 
>       >output 2>&1
> 
> should be OK.

Done.

> 
> > +   grep master output &&
> > +   grep allrefs output
> > +'
> > +
> > +test_expect_success 'push --atomic indicates collateral failures' '
> > +   # Make up/master, up/collateral
> > +   d=$HTTPD_DOCUMENT_ROOT_PATH/atomic-collateral.git &&
> > +   git init --bare "$d" &&
> > +   git --git-dir="$d" config http.receivepack true &&
> > +   up="$HTTPD_URL"/smart/atomic-collateral.git &&
> > +   test_commit collateral1 &&
> > +   test_commit collateral2 &&
> > +   git branch collateral &&
> > +   git push "$up" master collateral &&
> > +   # Make master incompatible with up/master
> > +   git reset --hard HEAD^ &&
> > +   # --atomic should mention collateral was OK but failed anyway
> > +   test_must_fail git push --atomic "$up" master collateral >&output &&
> 
> Ditto.

Done.

 - Emily

Reply via email to