gitolite/t/t12-merge-check

77 lines
2.2 KiB
Plaintext

# vim: syn=sh:
tsh pwd || die '## tsh not installed?'
for wr in 0 1
do
for bc in 0 1
do
cd $TESTDIR
$TESTDIR/rollback || die "rollback failed"
editrc GL_WILDREPOS $wr
editrc GL_BIG_CONFIG $bc
# ----------
name "INTERNAL"
echo "
repo foo
RW+M = u1
RW+ = u2
RWM .= u3
RW = u4
" | ugc
cd ~/td
name "setup a merged push"
tsh "ls -al foo; !ok; /cannot access foo: No such file or directory/
clone u1:foo; ok; /Cloning into/; /You appear to have cloned an empty/"
cd foo
tsh "ls -Al; ok; /\.git/
test-commit aa; ok; /1 files changed, 1 insertions/
tag start; ok
push-om; ok; /new branch.*master.-..master/
/create.delete ignored.*merge-check/
checkout -b new; ok; /Switched to a new branch 'new'/
test-commit bb cc; ok
checkout master; ok; /Switched to branch 'master'/
test-commit dd ee; ok
git merge new; ok; /Merge made.*recursive/
test-commit ff; ok
tag end; ok"
name "push by u4 should fail"
tsh "push u4:foo master
/WM refs/heads/master foo u4 DENIED by fallthru/
/To u4:foo/
/remote rejected.*hook declined/
/failed to push some refs/"
name "push by u3 should succeed"
tsh "push u3:foo master; ok; /To u3:foo/; /master.-..master/"
name "rewind by u3 should fail"
tsh "reset-h start; ok; /HEAD is now at .* aa /
push u3:foo +master; !ok; /rejected.*hook declined/; /failed to push some refs/"
name "rewind by u2 should succeed"
tsh "push u2:foo +master; ok; /To u2:foo/; /forced update/"
name "push by u2 should fail"
tsh "reset-h end; ok; /HEAD is now at .* ff /
push u2:foo master
/WM refs/heads/master foo u2 DENIED by fallthru/
/To u2:foo/
/remote rejected.*hook declined/
/failed to push some refs/"
name "push by u1 should succeed"
tsh "push u1:foo master; ok; /master.-..master/"
name INTERNAL
done
done