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

[PATCH 0/3] subtree: add 'git-subtree-repo' and list command

From
Nicola Paolucci <npaolucci@atlassian.com>
Date
Mar 10, 2016, 09:44 UTC
Message-ID
<1457603052-53963-1-git-send-email-npaolucci@atlassian.com>

To my knowledge 'git subtree' currently lacks a way to track where injected repositories come from originally. Adding this information allows for useful extensions to the command and makes it easier to use subtrees to track external dependencies.

In this patch series I propose to add a 'git-subtree-repo' line to the meta-data stored when injecting a tree in a repository with 'git subtree add'. The result looks like this:

    git-subtree-dir: .vim/bundle/fireplace
    git-subtree-split: b999b09cd9d69f359fa5668e81b09dcfde455cca
    git-subtree-repo: https://repo/user/vim-fireplace.git

Thanks a lot to Mathias Nyman who has cleaned up my idea to add 'git-subtree-repo' and already submitted it for review. I added a test and a tiny fix to his patch and I resend it here (hence the v3 in the first patch).

Using this extra value a simple 'git subtree list' command can be implemented which scans the checked out branch for subtrees injected:

    $ git subtree list
    .vim/bundle/fireplace https://github.com/tpope/vim-fireplace.git b999b0

I also added an optional '--resolve' flag to retrieve symbolic remote refs associated with the commit ids of the remote repository:

    $ git-subtree.sh list --resolve
    
    vim-airline  https://repo/bling/vim-airline.git 4fa37e5e[...]
    vim-airline  https://repo/bling/vim-airline.git HEAD
    vim-airline  https://repo/bling/vim-airline.git refs/heads/master
Nicola Paolucci (3):
  contrib/subtree: 'add' stores 'git-subtree-repo'
  contrib/subtree: new list command to list subtrees
  contrib/subtree: list --resolve gets symbolic refs
 contrib/subtree/git-subtree.sh     | 140 +++++++++++++++++++++++++++++--------
 contrib/subtree/git-subtree.txt    |  31 ++++++++
 contrib/subtree/t/t7900-subtree.sh |  63 +++++++++++++++++
 3 files changed, 205 insertions(+), 29 deletions(-)
-- 
2.7.1
Next: Nicola Paolucci
Message 1 of 5 in “subtree: add 'git-subtree-repo' and list command”
  1. 0/3 subtree: add 'git-subtree-repo' and list commandNicola Paolucci, Mar 10, 2016
  2. 1/3 contrib/subtree: 'add' stores 'git-subtree-repo'Nicola Paolucci, Mar 10, 2016
  3. 2/3 contrib/subtree: new list command to list subtreesNicola Paolucci, Mar 10, 2016
  4. 3/3 contrib/subtree: list --resolve gets symbolic refsNicola Paolucci, Mar 10, 2016
  5. David A. GreeneMay 21, 2016

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.