Add git_update_remote_branch to functions.
When $RECLONE=yes, and the branch specified for a project in stackrc is
a remote branch, the git_clone function would not recognize it as a
branch. git_clone now attempts to recognize a remote branch and handle
it appropriately.
Change-Id: Ie23ff12eb5a7905088a9c2bb0ea2b02453ec0258
diff --git a/AUTHORS b/AUTHORS
index 4f771ce..22d5f32 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,6 +1,7 @@
Aaron Lee <aaron.lee@rackspace.com>
Aaron Rosen <arosen@nicira.com>
Adam Gandelman <adamg@canonical.com>
+Andrew Laski <andrew.laski@rackspace.com>
Andy Smith <github@anarkystic.com>
Anthony Young <sleepsonthefloor@gmail.com>
Armando Migliaccio <armando.migliaccio@eu.citrix.com>
diff --git a/functions b/functions
index af154b0..5fdae26 100644
--- a/functions
+++ b/functions
@@ -278,6 +278,16 @@
}
+# git update using reference as a branch.
+# git_update_remote_branch ref
+function git_update_remote_branch() {
+
+ GIT_BRANCH=$1
+
+ git checkout -b $GIT_BRANCH -t origin/$GIT_BRANCH
+}
+
+
# Translate the OS version values into common nomenclature
# Sets ``DISTRO`` from the ``os_*`` values
function GetDistro() {
@@ -343,6 +353,8 @@
git_update_tag $GIT_REF
elif [[ -n "`git show-ref refs/heads/$GIT_REF`" ]]; then
git_update_branch $GIT_REF
+ elif [[ -n "`git show-ref refs/remotes/origin/$GIT_REF`" ]]; then
+ git_update_remote_branch $GIT_REF
else
echo $GIT_REF is neither branch nor tag
exit 1
@@ -770,4 +782,4 @@
# Local variables:
# -*- mode: Shell-script -*-
-# End:
\ No newline at end of file
+# End: