Only cherry-pick if really there is something to do.
[jprojects-scripts.git] / cherry-jprojects.sh
index ef82bae..38b9890 100755 (executable)
@@ -3,6 +3,8 @@
 . ./.jprojects.sh || exit 255
 
 for project in ${LIST}; do
+       COMMITS_FILE="${JPROJECTS_HOME}/${project}/.gitcommits"
+
        if [ "${project}" = "jprojects-scripts" ]
        then
                echo "$0: Skipping jprojects-scripts ..."
@@ -11,18 +13,27 @@ for project in ${LIST}; do
        then
                echo "$0: Project '${project}' does not exist."
                continue
-       elif [ ! -f "${JPROJECTS_HOME}/${project}/.gitcommits" ]
+       elif [ ! -f "${COMMITS_FILE}" ]
        then
                # No .gitcommits file, skip this silently
                continue
        fi
 
-       COMMIT_IDS=`cat "${JPROJECTS_HOME}/${project}/.gitcommits"`
-       COMMITS_FILE="${JPROJECTS_HOME}/${project}/.gitcommits"
+       COMMIT_IDS=`cat "${COMMITS_FILE}"`
+
+       if [ -n "${COMMIT_IDS}" ]
+       then
+               cd "${JPROJECTS_HOME}/${project}"
+               echo "$0: Pulling all for project '${project}' ..."
+               git pull --all
+       else
+               echo "$0: Nothing to cherry-pick for '${project}'."
+               rm "${COMMITS_FILE}"
+               continue
+       fi
 
        echo "$0: Cherry-picking on project '${project}' ..."
        for commit in ${COMMIT_IDS}; do
-               cd "${JPROJECTS_HOME}/${project}"
                echo "$0: Working on commit '${commit}' ..."
                FOUND_ID=`git rev-list "${commit}" --max-count=1 2>&1`
                STATUS="$?"