#!/bin/bash


GIT() {

	CMD git "$@"
}


OSM_git_checkout() {

    # 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 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
        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"
        fi
    else
        INFO "Code to compile: master"
        GIT checkout master
    fi

}
