{"thread":{"id":"33123","subject":"[PATCH 04/19] new commands: pull_all and push_all","startedAt":"2013-03-09T19:23:36Z","lastAt":"2013-03-09T19:23:36Z","messageCount":1,"participants":["Paul Campbell"],"isPatch":true,"patchVersion":1,"patchTotal":19},"messages":[{"id":"210911","messageId":"CALeLG_=fB+-f52k6VKH990BinghrcnAC+9s5jheHVoPnqOG6iA@mail.gmail.com","threadId":"33123","inReplyTo":null,"subject":"[PATCH 04/19] new commands: pull_all and push_all","fromName":"Paul Campbell","fromEmail":"pcampbell@kemitix.net","sentAt":"2013-03-09T19:23:36Z","receivedAt":"2013-03-09T19:23:36Z","isPatch":true,"sender":{"key":"pcampbell@kemitix.net","avatar":"https://gravatar.com/avatar/57584e05501b694929004e43fcd7308f4ad64df2eb0474cd8c7e5f93662bb0f1?d=mp&s=160"},"body":">From 7e20edee694cbcbac79be4fbe37d9cedebe3e4ee Mon Sep 17 00:00:00 2001\nFrom: Paul Campbell <pcampbell@kemitix.net>\nDate: Sat, 9 Mar 2013 18:31:37 +0000\nSubject: [PATCH 04/19] new commands: pull_all and push_all\n\nConflicts:\n\tcontrib/subtree/git-subtree.sh\n\nOriginal-Author: bibendi <bibendi@bk.ru>\nConflicts-resolved-by: Paul Campbell <pcampbell@kemitix.net>\n---\n contrib/subtree/git-subtree.sh | 25 ++++++++++++++++++++++---\n 1 file changed, 22 insertions(+), 3 deletions(-)\n\ndiff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh\nindex cb9e288..c3b1208 100755\n--- a/contrib/subtree/git-subtree.sh\n+++ b/contrib/subtree/git-subtree.sh\n@@ -12,6 +12,7 @@ git subtree add   --prefix=<prefix> <commit>\n git subtree add   --prefix=<prefix> <repository> <commit>\n git subtree merge --prefix=<prefix> <commit>\n git subtree pull  --prefix=<prefix> <repository> <refspec...>\n+git subtree pull_all\n git subtree push  --prefix=<prefix> <repository> <refspec...>\n git subtree split --prefix=<prefix> <commit...>\n git subtree from-submodule --prefix=<prefix>\n@@ -102,16 +103,18 @@ done\n command=\"$1\"\n shift\n case \"$command\" in\n-\tadd|merge|pull|from-submodule) default= ;;\n+\tadd|merge|pull|from-submodule|pull_all|push_all) default= ;;\n \tsplit|push) default=\"--default HEAD\" ;;\n \t*) die \"Unknown command '$command'\" ;;\n esac\n\n-if [ -z \"$prefix\" ]; then\n+if [ -z \"$prefix\" -a \"$command\" != \"pull_all\" -a \"$command\" !=\n\"push_all\" ]; then\n \tdie \"You must provide the --prefix option.\"\n fi\n\n case \"$command\" in\n+    pull_all);;\n+    push_all);;\n \tadd) [ -e \"$prefix\" ] &&\n \t\tdie \"prefix '$prefix' already exists.\" ;;\n \t*)   [ -e \"$prefix\" ] ||\n@@ -120,7 +123,7 @@ esac\n\n dir=\"$(dirname \"$prefix/.\")\"\n\n-if [ \"$command\" != \"pull\" -a \"$command\" != \"add\" -a \"$command\" !=\n\"push\" ]; then\n+if [ \"$command\" != \"pull\" -a \"$command\" != \"add\" -a \"$command\" !=\n\"push\" -a \"$command\" != \"pull_all\" ]; then\n \trevs=$(git rev-parse $default --revs-only \"$@\") || exit $?\n \tdirs=\"$(git rev-parse --no-revs --no-flags \"$@\")\" || exit $?\n \tif [ -n \"$dirs\" ]; then\n@@ -760,4 +763,20 @@ cmd_from-submodule()\n \trm -rf $tmp_repo\n }\n\n+cmd_pull_all()\n+{\n+    git config -f .gittrees -l | grep subtree | grep path | grep -o\n'=.*' | grep -o '[^=].*' |\n+        while read path; do\n+            git subtree pull -P $path master || exit $?\n+        done\n+}\n+\n+cmd_push_all()\n+{\n+    git config -f .gittrees -l | grep subtree | grep path | grep -o\n'=.*' | grep -o '[^=].*' |\n+        while read path; do\n+            git subtree push -P $path master || exit $?\n+        done\n+}\n+\n \"cmd_$command\" \"$@\"\n-- \n1.8.2.rc1\n\n\n-- \nPaul [W] Campbell\n"}]}