X-Git-Url: https://git.mxchange.org/?p=jprojects-scripts.git;a=blobdiff_plain;f=cherry-jprojects.sh;h=1ecb7945ed71f8769a80eb73076579ea5b5a3cff;hp=ef82bae60f5649a7906d298fbd3a1632edfa2401;hb=HEAD;hpb=8f2d1d392f523f5279e6144bf42d1c41487a7195 diff --git a/cherry-jprojects.sh b/cherry-jprojects.sh index ef82bae..1ecb794 100755 --- a/cherry-jprojects.sh +++ b/cherry-jprojects.sh @@ -11,20 +11,34 @@ for project in ${LIST}; do then echo "$0: Project '${project}' does not exist." continue - elif [ ! -f "${JPROJECTS_HOME}/${project}/.gitcommits" ] + fi + + COMMITS_FILE="${JPROJECTS_HOME}/${project}/.gitcommits" + + if [ ! -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: Fetching all for project '${project}' ..." + git prune + git fetch --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` + FOUND_ID=$(git rev-list "${commit}" --max-count=1 2>&1) STATUS="$?" if [ "${STATUS}" != "0" ] @@ -37,7 +51,7 @@ for project in ${LIST}; do git cherry-pick -S "${commit}" || exit 255 echo "$0: Removing commit from list ..." - REMAINING_IDS=`cat ${COMMITS_FILE} | grep -v "${commit}"` + REMAINING_IDS=$(cat ${COMMITS_FILE} | grep -v "${commit}") echo "${REMAINING_IDS}" > ${COMMITS_FILE} done