- echo "working on ${i}"
- PROJECT=`echo ${i} | cut -d\: -f 1`
- PATCH=`echo ${i} | cut -d\: -f 2`
- echo "<module>${PROJECT}</module>" >> $POM_FILE
- echo "cloning ${PROJECT} and checking out ${PATCH}"
- git clone https://git.opendaylight.org/gerrit/p/${PROJECT}
- cd ${PROJECT}
- git fetch https://git.opendaylight.org/gerrit/${PROJECT} refs/changes/${PATCH}
- git checkout FETCH_HEAD
- cd $BUILD_DIR
-
+ echo "working on ${patch_code}"
+ PROJECT=`echo ${patch_code} | cut -d\: -f 1 | cut -d\= -f 1`
+ if [ "${PROJECT}" == "integration/distribution" ]; then
+ distribution_status="included"
+ fi
+ PROJECT_SHORTNAME="${PROJECT##*/}" # http://stackoverflow.com/a/3162500
+ echo "cloning project ${PROJECT}"
+ git clone "https://git.opendaylight.org/gerrit/p/${PROJECT}"
+ echo "<module>${PROJECT_SHORTNAME}</module>" >> ${POM_FILE}
+ cd ${PROJECT_SHORTNAME}
+ CHECKOUT=`echo ${patch_code} | cut -d\= -s -f 2 | cut -d\: -f 1`
+ if [ "x${CHECKOUT}" != "x" ]; then
+ echo "checking out ${CHECKOUT}"
+ git fetch "https://git.opendaylight.org/gerrit/${PROJECT}" "refs/changes/$CHECKOUT"
+ git checkout FETCH_HEAD
+ else
+ echo "checking out ${DISTRIBUTION_BRANCH_TO_BUILD}"
+ git checkout "${DISTRIBUTION_BRANCH_TO_BUILD}"
+ fi
+ PICK_SEGMENT=`echo "${patch_code}" | cut -d\: -s -f 2-`
+ IFS=':' read -ra PICKS <<< "${PICK_SEGMENT}"
+ for pick in "${PICKS[@]}"
+ do
+ echo "cherry-picking ${pick}"
+ git fetch "https://git.opendaylight.org/gerrit/${PROJECT}" "refs/changes/${pick}"
+ git cherry-pick --ff --keep-redundant-commits FETCH_HEAD
+ done
+ cd "${BUILD_DIR}"