1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
#!/usr/bin/env bash
set -e
source test/setup
use Test::More
clone-foo-and-bar
subrepo-clone-bar-into-foo
(
cd "$OWNER/bar"
add-new-files Bar2
git push
) &> /dev/null || die
(
cd "$OWNER/foo"
add-new-files bar/Foo1
git subrepo push bar --force
) &> /dev/null || die
(
cd "$OWNER/foo"
git subrepo pull bar
) &> /dev/null || die
test-exists \
"$OWNER/foo/bar/Foo1" \
!"$OWNER/foo/bar/Bar2" \
# Pull here will actually merge the old master with the new one
(
set +x
cd "$OWNER/bar"
git pull --rebase=false
) &> /dev/null || die
test-exists \
"$OWNER/bar/Bar2" \
"$OWNER/bar/Foo1" \
# Test that a fresh repo is not contaminated
(
git clone "$UPSTREAM/bar" "$OWNER/newbar"
) &> /dev/null || die
test-exists \
"$OWNER/newbar/Foo1" \
!"$OWNER/foo/bar/Bar2" \
done_testing
teardown
|