repo-cloner/tests/_support_data/gen-data.sh

93 lines
2.3 KiB
Bash
Raw Normal View History

#!/bin/bash
new_pwd=$(dirname $(realpath $0))
cd $new_pwd
# remove old data, if exists
if [ -d "tool_repos" ]
then
echo "Removing old tool_repos"
rm -Rf "tool_repos"
fi
echo "Initializing tool_repos"
mkdir -p tool_repos/uninitialized.git
git init --bare tool_repos/initialized.git
git init tool_repos/non-bare-init
echo "Preparing submodules for tests.."
for repo in test-repo-*
do
echo ">> $repo"
cd $repo
for i in $(git for-each-ref --format="%(refname:short)" --no-merged=origin/HEAD refs/remotes/origin); do git switch --track $i; done
cd ..
done
# recover submodules to initial state (branches will remain)
git submodule update --init
if [ -d test-submodules-adhoc ]
then
echp "Removing adhoc submodules"
rm -Rf test-submodules-adhoc
fi
echo "Creating adhoc submodules"
mkdir test-submodules-adhoc
cd test-submodules-adhoc
# git submodules level two
git init submodules-level-two
cd submodules-level-two
git config user.name Tester
git config user.email test@tester.me
git submodule add $new_pwd/test-repo-base
git submodule add $new_pwd/test-repo-reduced
git add -A
git commit -m "first commit"
cd ..
# git submodules root level
git init submodules-root
cd submodules-root
git config user.name Tester
git config user.email test@tester.me
git submodule add $new_pwd/test-repo-base
git submodule add $new_pwd/test-repo-different-tags
git add -A
git commit -m "initial commit"
git submodule add $new_pwd/test-repo-new-commits
git submodule add $new_pwd/test-submodules-adhoc/submodules-level-two
git add -A
git commit -m "added submodule recursion"
cd ..
# submodule with failed url
git init submodule-failed-cfg
cd submodule-failed-cfg
git config user.name Tester
git config user.email test@tester.me
echo "# komentář" > .gitmodules
dd if=/dev/urandom bs=20 count=1 > .gitmodules
git add -A
git commit -m "failed .gitmodules"
cd ..
# submodule root with two fucked-up submodules
git init submodule-failed
cd submodule-failed
git config user.name Tester
git config user.email test@tester.me
git submodule add $new_pwd/test-submodules-adhoc/submodule-failed-cfg
git submodule add $new_pwd/test-repo-base
git submodule deinit test-repo-base
sed -i 's/_support_data\/test-repo-base/_support_\/test-repo-base/g' .gitmodules
git add -A
git commit -m "submodules created, but would fail"
cd ..
# return back
cd $new_pwd