The script pulls all branches and now can check out a specific branch or commit-id

Change-Id: Ie2ff90a4a9baf9fbba96ce2c541f1c8bf79abd5e
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/jenkins/RO/start_build b/jenkins/RO/start_build
index 223b231..620ab0c 100755
--- a/jenkins/RO/start_build
+++ b/jenkins/RO/start_build
@@ -27,26 +27,32 @@
 OSM_load_config
 
 
-# Here is an example for how to handle an incremental build
+# Updates all the branches in the local repo (clones if it does not exist)
 if [ -d $OSM_MDG ]; then
-	INFO "reusing existing workspace"
-	cd $OSM_MDG
-        git checkout master  #to make sure that we are in the right branch before pulling the code
-	git pull
-        # TO DO: probably it makes sense to fetch all branches, but this requires creating the branches locally
+    INFO "reusing existing workspace"
+    cd $OSM_MDG
+    git pull --all
+    #git checkout master  #to make sure that we are in the right branch before pulling the code
+    #git pull
 else
-	INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
-	git clone $OSM_GIT_URL/$OSM_MDG
-	cd $OSM_MDG
+    INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
+    git clone $OSM_GIT_URL/$OSM_MDG
+    cd $OSM_MDG
+    for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done
 fi
 
 if [ $# -gt 0 ]; then
+    if [ "$1" = "checkout" ]; then
+        INFO "Code to compile: '$2'"
+        git checkout $2
+    else
         INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
-	git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
-	git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
+        git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
+        git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
+    fi
 else
-        INFO "Code to compile: master"
-	git checkout master
+    INFO "Code to compile: master"
+    git checkout master
 fi
 
 INFO "starting build"