Created
May 15, 2018 18:53
-
-
Save ezarko/ba35cb80a943110827270ac681973e93 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -ex | |
orig_git=$HOME/caas | |
# want to make sure that what is pointed to has a .git directory ... | |
git_dir=$(cd "$orig_git" 2>/dev/null && git rev-parse --git-dir 2>/dev/null) | |
if test $? -ne 0; then | |
echo "Not a git repository: \"$orig_git\"" | |
exit 128 | |
fi | |
case "$git_dir" in | |
.git) | |
git_dir="$orig_git/.git" | |
;; | |
.) | |
git_dir=$orig_git | |
;; | |
esac | |
# don't link to a configured bare repository | |
isbare=$(git --git-dir="$git_dir" config --bool --get core.bare) | |
if test ztrue = "z$isbare"; then | |
echo "\"$git_dir\" has core.bare set to true, remove from \"$git_dir/config\" to use $0" | |
exit 128 | |
fi | |
# don't link to a workdir | |
if test -h "$git_dir/config"; then | |
echo "\"$orig_git\" is a working directory only, please specify a complete repository." | |
exit 128 | |
fi | |
# make sure the links in the workdir have full paths to the original repo | |
git_dir=$(cd "$git_dir" && pwd) || exit 1 | |
mkdir -p "$WORKSPACE/.git" | |
# create the links to the original repo. explicitly exclude index, HEAD and | |
# logs/HEAD from the list since they are purely related to the current working | |
# directory, and should not be shared. | |
for x in config refs logs/refs objects info hooks packed-refs remotes rr-cache svn | |
do | |
# create a containing directory if needed | |
case $x in | |
*/*) | |
mkdir -p "$WORKSPACE/.git/${x%/*}" | |
;; | |
esac | |
ln -s "$git_dir/$x" "$WORKSPACE/.git/$x" | |
done | |
# copy the HEAD from the original repository as a default branch | |
cp "$git_dir/HEAD" $WORKSPACE/.git/HEAD |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment