{"thread":{"id":"33119","subject":"[PATCH 0/19] git-subtree updates","startedAt":"2013-03-09T19:19:10Z","lastAt":"2013-03-09T19:19:10Z","messageCount":1,"participants":["Paul Campbell"],"isPatch":true,"patchVersion":1,"patchTotal":19},"messages":[{"id":"210906","messageId":"CALeLG_=2WO6jgCbEmF33RCHGpXJnX0dE0Rt==6CX+-7RttALHQ@mail.gmail.com","threadId":"33119","inReplyTo":null,"subject":"[PATCH 0/19] git-subtree updates","fromName":"Paul Campbell","fromEmail":"pcampbell@kemitix.net","sentAt":"2013-03-09T19:19:10Z","receivedAt":"2013-03-09T19:19:10Z","isPatch":true,"sender":{"key":"pcampbell@kemitix.net","avatar":"https://gravatar.com/avatar/57584e05501b694929004e43fcd7308f4ad64df2eb0474cd8c7e5f93662bb0f1?d=mp&s=160"},"body":"The following set of commits are taken from the collection collated by\nHerman van Rink and offered to the list in May of last year\n($gmane/196667).\n\nWhere updating a commit to resolve a conflict has cleared the original\nauthor of the commit I've noted the original author in the commit\nmessage. Thus I've left the From lines in the format-patch output as\nnone of the work here is mine and I don't want to assume another's\ncredit.\n\nI have tried to leave the commit's in a state as close to their\noriginal, with only enough modification to allow them to be applied to\nthe current HEAD of master.\n\nThe git-subtree tests work (make test), but they don't cover any of\nthe new commands added nor the use of the .gittrees file for storing\nthe subtree metadata.\n\nThey provide the following:\n\nIn git-subtree.sh:\n\n* OPTS_SPEC\n  * pull/push: options for repository and refspec are both optional,\n[<repository> [<refspec>]]\n  * new sub-command: pull-all\n  * new sub-command: push-all\n  * new sub-command: list\n  * new sub-command: from-submodule\n  * new sub-command: prune\n  * new sub-command: diff\n  * new option for push: --force\n* Trailing slash on prefix is removed\n* Stores subtree metadata in .gittrees as:\n  [subtree \"$dir\"]\n    url = $repository\n    path = $dir\n    branch = $refspec\n* Replaces a non-visible carriage return character with a properly escaped one\n* pull and push: reads options from .gitrees if not provided on the command line\n* Implementation of diff\n  Fetches remote repo as a temporary git-remote then uses\ngit-diff-tree to compare before removing the temporary git-remote\n* Implementation of list as plain wrapper to new functions subtree_list\n  Iterates over subtrees listed in .gittrees and prints out their details\n* Implementation of from-submodule\n  Converts a git-submodule into a git-subtree\n* Implementation of prune\n  Removes entries from .gittrees where the $dir is missing\n* Implementation of pull-all\n  Performs a git-subtree pull for each subtree\n* Implementation of push-all\n  Performs a git-subtree push for each subtree\n\nIn git-subtree.txt:\n\n* Adds brief descriptions for commands:\n  * pull-all\n  * push-all\n  * list\n  * from-submodule\n  * prune\n  * diff (\"TO BE DOCUMENTED\")\n* Notes optional -f|--force for push sub-command\n* fixes a typo in text for Example 1 (s/incldued/included/)\n\n-- \nPaul [W] Campbell\n"}]}