{"thread":{"id":"33122","subject":"[PATCH 03/19] Use .gittrees config file like a .gitmodules when pull or push","startedAt":"2013-03-09T19:21:31Z","lastAt":"2013-03-09T19:21:31Z","messageCount":1,"participants":["Paul Campbell"],"isPatch":true,"patchVersion":1,"patchTotal":19},"messages":[{"id":"210910","messageId":"CALeLG_mY2BPpPjbGJ=3BKkeu3V7cngEmvhDOJ2UWDeO25E+aLw@mail.gmail.com","threadId":"33122","inReplyTo":null,"subject":"[PATCH 03/19] Use .gittrees config file like a .gitmodules when pull or push","fromName":"Paul Campbell","fromEmail":"pcampbell@kemitix.net","sentAt":"2013-03-09T19:21:31Z","receivedAt":"2013-03-09T19:21:31Z","isPatch":true,"sender":{"key":"pcampbell@kemitix.net","avatar":"https://gravatar.com/avatar/57584e05501b694929004e43fcd7308f4ad64df2eb0474cd8c7e5f93662bb0f1?d=mp&s=160"},"body":">From 92787322c6e0e8c9166f02f98a71b6e0af9dc405 Mon Sep 17 00:00:00 2001\nFrom: bibendi <bibendi@bk.ru>\nDate: Fri, 20 May 2011 00:15:53 +0600\nSubject: [PATCH 03/19] Use .gittrees config file like a .gitmodules when pull\n or push\n\n---\n contrib/subtree/git-subtree.sh | 31 +++++++++++++++++++++----------\n 1 file changed, 21 insertions(+), 10 deletions(-)\n\ndiff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh\nindex caf4988..cb9e288 100755\n--- a/contrib/subtree/git-subtree.sh\n+++ b/contrib/subtree/git-subtree.sh\n@@ -593,7 +593,8 @@ cmd_split()\n \teval \"$grl\" |\n \twhile read rev parents; do\n \t\trevcount=$(($revcount + 1))\n-\t\tsay -n \"$revcount/$revmax ($createcount)\n\"\n+\t\tsay -n \"$revcount/$revmax ($createcount)\n+\"\n \t\tdebug \"Processing commit: $rev\"\n \t\texists=$(cache_get $rev)\n \t\tif [ -n \"$exists\" ]; then\n@@ -700,21 +701,31 @@ cmd_merge()\n\n cmd_pull()\n {\n-\tensure_clean\n-\tgit fetch \"$@\" || exit $?\n-\trevs=FETCH_HEAD\n-\tset -- $revs\n-\tcmd_merge \"$@\"\n+    if [ $# -ne 1 ]; then\n+\t    die \"You must provide <branch>\"\n+\tfi\n+\tif [ -e \"$dir\" ]; then\n+\t    ensure_clean\n+\t    repository=$(git config -f .gittrees subtree.$prefix.url)\n+\t    refspec=$1\n+\t    git fetch $repository $refspec || exit $?\n+\t    echo \"git fetch using: \" $repository $refspec\n+\t    revs=FETCH_HEAD\n+\t    set -- $revs\n+\t    cmd_merge \"$@\"\n+\telse\n+\t    die \"'$dir' must already exist. Try 'git subtree add'.\"\n+\tfi\n }\n\n cmd_push()\n {\n-\tif [ $# -ne 2 ]; then\n-\t    die \"You must provide <repository> <refspec>\"\n+\tif [ $# -ne 1 ]; then\n+\t    die \"You must provide <branch>\"\n \tfi\n \tif [ -e \"$dir\" ]; then\n-\t    repository=$1\n-\t    refspec=$2\n+\t    repository=$(git config -f .gittrees subtree.$prefix.url)\n+\t    refspec=$1\n \t    echo \"git push using: \" $repository $refspec\n \t    git push $repository $(git subtree split\n--prefix=$prefix):refs/heads/$refspec\n \telse\n-- \n1.8.2.rc1\n\n\n-- \nPaul [W] Campbell\n"}]}