Only cherry-pick if really there is something to do.
authorRoland Haeder <roland@mxchange.org>
Tue, 16 Aug 2016 19:49:48 +0000 (21:49 +0200)
committerRoland Haeder <roland@mxchange.org>
Tue, 16 Aug 2016 19:49:48 +0000 (21:49 +0200)
Signed-off-by: Roland Haeder <roland@mxchange.org>
cherry-jprojects.sh

index ef82bae60f5649a7906d298fbd3a1632edfa2401..38b989023e04c0361898f3362c81af39c9ca4bf8 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="$?"