2011-06-22 20:34:27 +01:00
|
|
|
# tested so far with:
|
|
|
|
# - no revision specified and remote has a HEAD which is used
|
|
|
|
# - revision specified and remote has a HEAD
|
2011-06-22 22:01:36 +01:00
|
|
|
# - revision specified and remote without HEAD
|
2009-06-24 13:48:01 +01:00
|
|
|
source $stdenv/setup
|
|
|
|
|
|
|
|
header "exporting $url (rev $rev) into $out"
|
|
|
|
|
2011-04-27 04:00:47 +01:00
|
|
|
git init $out
|
|
|
|
cd $out
|
|
|
|
git remote add origin "$url"
|
2011-06-22 20:34:32 +01:00
|
|
|
git fetch --progress origin
|
2011-06-22 20:34:27 +01:00
|
|
|
git remote set-head origin -a || (
|
2011-06-23 00:33:41 +01:00
|
|
|
test -n "$rev" && echo "that's ok, we want $rev" || exit 1)
|
2010-05-19 22:27:01 +01:00
|
|
|
|
2011-04-27 04:00:47 +01:00
|
|
|
if test -n "$rev"; then
|
|
|
|
echo "Trying to checkout: $rev"
|
|
|
|
parsed_rev=$(
|
|
|
|
git rev-parse --verify "$rev" 2>/dev/null ||
|
|
|
|
git rev-parse --verify origin/"$rev" 2>/dev/null
|
2011-07-20 23:56:44 +01:00
|
|
|
)
|
2011-04-27 04:00:47 +01:00
|
|
|
git reset --hard $parsed_rev
|
2011-06-22 20:34:27 +01:00
|
|
|
git checkout -b __nixos_build__
|
|
|
|
else
|
|
|
|
git checkout -b __nixos_build__ origin/HEAD
|
2009-06-24 13:48:01 +01:00
|
|
|
fi
|
|
|
|
|
2011-07-20 23:56:35 +01:00
|
|
|
if test -f .gitmodules; then
|
|
|
|
git submodule update --init
|
|
|
|
fi
|
|
|
|
|
2010-01-27 12:12:35 +00:00
|
|
|
if test -z "$leaveDotGit"; then
|
|
|
|
find $out -name .git\* | xargs rm -rf
|
|
|
|
fi
|
2009-06-24 13:48:01 +01:00
|
|
|
|
2010-01-27 12:12:35 +00:00
|
|
|
stopNest
|