scripts: Fix git-checkout.sh to work with non-master branches (take 2)

First, rename $TAG to $COMMITTISH.  We already pass tags, branches (well, only
master) and full SHAs into this script.

Xen uses master for QEMU_UPSTREAM_REVISION, and has done for other trees too
in the path.  Apparently we've never specified a different branch, because the
git-clone rune only pulls in the master branch; it does not pull in diverging
branches.

Fix this by performing an explicit fetch of the $COMMITTISH, then checking out
the dummy branch from the FETCH_HEAD.

Suggested-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
This commit is contained in:
Andrew Cooper committed 2025-02-25 13:30:55 +00:00
1 parent c11772277f
commit 01fb23dd71
1 file changed
+5 -4
+5 -4
View File
@@ -1,12 +1,12 @@
#!/bin/sh
if test $# -lt 3; then
echo "Usage: $0 <tree> <tag> <dir>"
echo "Usage: $0 <tree> <committish> <dir>"
exit 1
fi
TREE=$1
TAG=$2
COMMITTISH=$2
DIR=$3
set -e
@@ -15,10 +15,11 @@ if test \! -d $DIR-remote; then
rm -rf $DIR-remote $DIR-remote.tmp
mkdir -p $DIR-remote.tmp; rmdir $DIR-remote.tmp
$GIT clone $TREE $DIR-remote.tmp
if test "$TAG" ; then
if test "$COMMITTISH" ; then
cd $DIR-remote.tmp
$GIT fetch origin "$COMMITTISH"
$GIT branch -D dummy >/dev/null 2>&1 ||:
$GIT checkout -b dummy $TAG
$GIT checkout -b dummy FETCH_HEAD
cd -
fi
mv $DIR-remote.tmp $DIR-remote
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.