added script for half-automated cherry-picking all projects
[jprojects-scripts.git] / pull-stick.sh
index bca96943000365aec93aa476fb188e2b134ebbba..4eeb02ea9180aa8aa1bc7bb72b6b14c170630c5d 100755 (executable)
@@ -6,7 +6,7 @@ for project in ${LIST}; do
        if [ ! -d "${JPROJECTS_HOME}/${project}" ]
        then
                echo "$0: Project '${project}' does not exist."
-               continue;
+               continue
        fi
 
        cd "${JPROJECTS_HOME}/${project}" || exit 255
@@ -15,10 +15,32 @@ for project in ${LIST}; do
        then
                echo "$0: Checkout '${project}' ..."
                git checkout -- .
+       elif [ "$1" = "r" ]
+       then
+               echo "$0: Resetting '${project}' ..."
+               git reset --hard
        fi
 
        echo "$0: Pulling '${project}' ..."
-       git pull transport master || exit 255
-       echo "$0: Rebasing '${project}' ..."
-       git rebase origin/master || exit 255
+
+       git pull -S origin master
+       git pull -S upstream master
+       git pull -S transport master
+
+       if [ "$?" != "0" ]
+       then
+               git pull --all
+       fi
+
+       echo "$0: Merging upstream into '${project}' ..."
+       git merge -S upstream/master
+
+       if [ "$1" != "s" ]
+       then
+               echo "$0: Rebasing '${project}' ..."
+               git rebase -Sm origin/master || exit 255
+       fi
 done
+
+echo "$0: All done."
+exit 0