cleanup is now done separately and only if requested. Yes, getting messy ...
[jprojects-scripts.git] / 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="$?"