fetchgit builder to handle broken remotes without a HEAD

svn path=/nixpkgs/trunk/; revision=27521
This commit is contained in:
Florian Friesdorf 2011-06-22 19:34:27 +00:00
parent edd3c49119
commit ee731974e9

View File

@ -1,3 +1,6 @@
# tested so far with:
# - no revision specified and remote has a HEAD which is used
# - revision specified and remote has a HEAD
source $stdenv/setup
header "exporting $url (rev $rev) into $out"
@ -6,10 +9,8 @@ git init $out
cd $out
git remote add origin "$url"
git fetch origin
git remote set-head origin -a
# If no revision was specified, the remote HEAD will be used
git checkout -b __nixos_build__ origin/HEAD
git remote set-head origin -a || (
test -n $rev && echo "that's ok, we want $rev" || exit 1)
if test -n "$rev"; then
echo "Trying to checkout: $rev"
@ -18,6 +19,9 @@ if test -n "$rev"; then
git rev-parse --verify origin/"$rev" 2>/dev/null
)
git reset --hard $parsed_rev
git checkout -b __nixos_build__
else
git checkout -b __nixos_build__ origin/HEAD
fi
if test -z "$leaveDotGit"; then