threads / patch / 33119

patch, 19 partsgit-subtree updates

Subject: [PATCH 0/19] git-subtree updates

## tl;dr

One message between Mar 9, 2013 and Mar 9, 2013. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Paul Campbell· Mar 9, 2013, 19:19 UTC · lore

The following set of commits are taken from the collection collated by Herman van Rink and offered to the list in May of last year ($gmane/196667).

Where updating a commit to resolve a conflict has cleared the original author of the commit I've noted the original author in the commit message. Thus I've left the From lines in the format-patch output as none of the work here is mine and I don't want to assume another's credit.

I have tried to leave the commit's in a state as close to their original, with only enough modification to allow them to be applied to the current HEAD of master.

The git-subtree tests work (make test), but they don't cover any of the new commands added nor the use of the .gittrees file for storing the subtree metadata.

They provide the following:
In git-subtree.sh:
* OPTS_SPEC
  * pull/push: options for repository and refspec are both optional,
[<repository> [<refspec>]]
  * new sub-command: pull-all
  * new sub-command: push-all
  * new sub-command: list
  * new sub-command: from-submodule
  * new sub-command: prune
  * new sub-command: diff
  * new option for push: --force
* Trailing slash on prefix is removed
* Stores subtree metadata in .gittrees as:
  [subtree "$dir"]
    url = $repository
    path = $dir
    branch = $refspec
* Replaces a non-visible carriage return character with a properly escaped one
* pull and push: reads options from .gitrees if not provided on the command line
* Implementation of diff
  Fetches remote repo as a temporary git-remote then uses
git-diff-tree to compare before removing the temporary git-remote
* Implementation of list as plain wrapper to new functions subtree_list
  Iterates over subtrees listed in .gittrees and prints out their details
* Implementation of from-submodule
  Converts a git-submodule into a git-subtree
* Implementation of prune
  Removes entries from .gittrees where the $dir is missing
* Implementation of pull-all
  Performs a git-subtree pull for each subtree
* Implementation of push-all
  Performs a git-subtree push for each subtree
In git-subtree.txt:
* Adds brief descriptions for commands:
  * pull-all
  * push-all
  * list
  * from-submodule
  * prune
  * diff ("TO BE DOCUMENTED")
* Notes optional -f|--force for push sub-command
* fixes a typo in text for Example 1 (s/incldued/included/)
-- 
Paul [W] Campbell

← back to recent threads