Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/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
Add Comment
Please, Sign In to add comment