git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 05/23] contrib/subtree: Add commands pull_all and push_all

From
Paul Campbell <pcampbell@kemitix.net>
Date
Mar 10, 2013, 23:41 UTC
Message-ID
<1362958891-26941-6-git-send-email-pcampbell@kemitix.net>
In-Reply-To
<1362958891-26941-1-git-send-email-pcampbell@kemitix.net>
From: bibendi <bibendi@bk.ru>
For each subtree listed in .gittrees perform a push or a pull.
Signed-off-by: Paul Campbell <pcampbell@kemitix.net>
Conflicts:
	contrib/subtree/git-subtree.sh
---
 contrib/subtree/git-subtree.sh | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index 1aff956..ddae56e 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -12,6 +12,7 @@ git subtree add   --prefix=<prefix> <commit>
 git subtree add   --prefix=<prefix> <repository> <commit>
 git subtree merge --prefix=<prefix> <commit>
 git subtree pull  --prefix=<prefix> <repository> <refspec...>
+git subtree pull_all
 git subtree push  --prefix=<prefix> <repository> <refspec...>
 git subtree split --prefix=<prefix> <commit...>
 git subtree from-submodule --prefix=<prefix>
@@ -102,16 +103,18 @@ done
 command="$1"
 shift
 case "$command" in
-	add|merge|pull|from-submodule) default= ;;
+	add|merge|pull|from-submodule|pull_all|push_all) default= ;;
 	split|push) default="--default HEAD" ;;
 	*) die "Unknown command '$command'" ;;
 esac
 
-if [ -z "$prefix" ]; then
+if [ -z "$prefix" -a "$command" != "pull_all" -a "$command" != "push_all" ]; then
 	die "You must provide the --prefix option."
 fi
 
 case "$command" in
+    pull_all);;
+    push_all);;
 	add) [ -e "$prefix" ] && 
 		die "prefix '$prefix' already exists." ;;
 	*)   [ -e "$prefix" ] || 
@@ -120,7 +123,7 @@ esac
 
 dir="$(dirname "$prefix/.")"
 
-if [ "$command" != "pull" -a "$command" != "add" -a "$command" != "push" ]; then
+if [ "$command" != "pull" -a "$command" != "add" -a "$command" != "push" -a "$command" != "pull_all" ]; then
 	revs=$(git rev-parse $default --revs-only "$@") || exit $?
 	dirs="$(git rev-parse --no-revs --no-flags "$@")" || exit $?
 	if [ -n "$dirs" ]; then
@@ -767,4 +770,20 @@ cmd_from-submodule()
 	rm -rf $tmp_repo
 }
 
+cmd_pull_all()
+{
+    git config -f .gittrees -l | grep subtree | grep path | grep -o '=.*' | grep -o '[^=].*' |
+        while read path; do
+            git subtree pull -P $path master || exit $?
+        done
+}
+
+cmd_push_all()
+{
+    git config -f .gittrees -l | grep subtree | grep path | grep -o '=.*' | grep -o '[^=].*' |
+        while read path; do
+            git subtree push -P $path master || exit $?
+        done
+}
+
 "cmd_$command" "$@"
-- 
1.8.2.rc1
Previous: Paul CampbellNext: Junio C Hamano
Message 13 of 33 in “contrib/subtree: Collected updates”
  1. 00/23 contrib/subtree: Collected updatesPaul Campbell, Mar 10, 2013
  2. 01/23 contrib/subtree: Fix typo (s/incldued/included/)Paul Campbell, Mar 10, 2013
  3. 02/23 contrib/subtree: Add command from-submodulePaul Campbell, Mar 10, 2013
  4. Junio C HamanoMar 11, 2013
  5. contrib/subtree: Add command from-submodulePaul Campbell, Mar 24, 2013
  6. 03/23 contrib/subtree: Teach add to store repository & branch in .gittreesPaul Campbell, Mar 10, 2013
  7. Junio C HamanoMar 11, 2013
  8. Paul CampbellMar 24, 2013
  9. contrib/subtree: Teach add to store repository & branch in .gittreesPaul Campbell, Mar 24, 2013
  10. 04/23 contrib/subtree: Teach push and pull to use .gittrees for defaultsPaul Campbell, Mar 10, 2013
  11. Junio C HamanoMar 11, 2013
  12. Paul CampbellMar 24, 2013
  13. 05/23 contrib/subtree: Add commands pull_all and push_allPaul Campbell, Mar 10, 2013
  14. Junio C HamanoMar 11, 2013
  15. Paul CampbellMar 11, 2013
  16. 06/23 contrib/subtree: Rename commands push_all/pull_all to push-all/pull-allPaul Campbell, Mar 10, 2013
  17. 07/23 contrib/subtree: Teach push and pull to use .gittrees if neededPaul Campbell, Mar 10, 2013
  18. 08/23 contrib/subtree: Replace invisible carriage return with a visible \rPaul Campbell, Mar 10, 2013
  19. 09/23 contrib/subtree: Teach push to abort if split failsPaul Campbell, Mar 10, 2013
  20. 10/23 contrib/subtree: Add command diffPaul Campbell, Mar 10, 2013
  21. 11/23 contrib/subtree: Add command listPaul Campbell, Mar 10, 2013
  22. 12/23 contrib/subtree: Add command prunePaul Campbell, Mar 10, 2013
  23. 13/23 contrib/subtree: Add prune command to OPTS_SPECPaul Campbell, Mar 10, 2013
  24. 14/23 contrib/subtree: Remove trailing slash from prefix parameterPaul Campbell, Mar 10, 2013
  25. 15/23 contrib/subtree: Teach from-submodule to add new subtree to .gittreesPaul Campbell, Mar 10, 2013
  26. 16/23 contrib/subtree: Document pull-all and push-allPaul Campbell, Mar 10, 2013
  27. 17/23 contrib/subtree: Document from-submodule and prune commandsPaul Campbell, Mar 10, 2013
  28. 18/23 contrib/subtree: Add missing commands to SYNOPSISPaul Campbell, Mar 10, 2013
  29. 19/23 contrib/subtree: Document list commandPaul Campbell, Mar 10, 2013
  30. 20/23 contrib/subtree: Teach push to use --force optionPaul Campbell, Mar 10, 2013
  31. 21/23 contrib/subtree: Convert spaces to tabs and remove some trailing whitespacePaul Campbell, Mar 10, 2013
  32. 22/23 contrib/subtree: Parameters repository/branch for push/pull are optionalPaul Campbell, Mar 10, 2013
  33. 23/23 contrib/subtree: Fix order of case switches so default case is lastPaul Campbell, Mar 10, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.