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

[PATCHv2 0/3] Be more careful when prunning

From
Carlos Martín Nieto <cmn@elego.de>
Date
Oct 6, 2011, 21:21 UTC
Message-ID
<1317936107-1230-1-git-send-email-cmn@elego.de>
In-Reply-To
<20111006205103.GA1271@erythro.kitwarein.com>
Hello,

The first patch is not that big a deal, but it's better if we're freeing the refspecs, we might as well free all of them.

The second patch teaches get_stale_heads to use the user-provided refspecs instead of the ones in the config. For example, running

    git fetch --prune origin refs/heads/master:refs/heads/master

doesn't remove the other branches anymore. For a more interesting (and believable) example, let's take

    git fetch --prune origin refs/heads/b/*:refs/heads/b/*

because you want to prune the refs inside the b/ namespace only. Currently git will delete all the refs that aren't under that namespace. With the second patch applied, git won't remove any refs outside the b/ namespace.

What is probably the most usual case is covered by the third patch, which pretends that a "refs/tags/*:refs/tags/*" refspec was given on the command-line.

Version 1 assumed that a refspec would have its dst filled automatically. This is not the case and was fixed in the second patch.

Cheers,
   cmn
Carlos Martín Nieto (3):
      fetch: free all the additional refspecs
      fetch: honor the user-provided refspecs when pruning refs
      fetch: treat --tags like refs/tags/*:refs/tags/* when pruning
 builtin/fetch.c  |   19 ++++++++++---
 builtin/remote.c |    2 +-
 remote.c         |   74 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 remote.h         |    3 +-
 4 files changed, 84 insertions(+), 14 deletions(-)
-- 
1.7.5.2.354.g349bf
Previous: Carlos Martín NietoNext: Carlos Martín Nieto
Message 7 of 15 in “Be more careful when prunning”
  1. 0/3 Be more careful when prunningCarlos Martín Nieto, Oct 6, 2011
  2. 1/3 fetch: free all the additional refspecsCarlos Martín Nieto, Oct 6, 2011
  3. 2/3 fetch: honor the user-provided refspecs when pruning refsCarlos Martín Nieto, Oct 6, 2011
  4. 3/3 fetch: treat --tags like refs/tags/*:refs/tags/* when pruningCarlos Martín Nieto, Oct 6, 2011
  5. Ben BoeckelOct 6, 2011
  6. Carlos Martín NietoOct 6, 2011
  7. 0/3 Be more careful when prunningCarlos Martín Nieto, Oct 6, 2011
  8. 1/3 fetch: free all the additional refspecsCarlos Martín Nieto, Oct 6, 2011
  9. 2/3 fetch: honor the user-provided refspecs when pruning refsCarlos Martín Nieto, Oct 6, 2011
  10. Jeff KingOct 7, 2011
  11. Carlos Martín NietoOct 7, 2011
  12. Jeff KingOct 7, 2011
  13. 3/3 fetch: treat --tags like refs/tags/*:refs/tags/* when pruningCarlos Martín Nieto, Oct 6, 2011
  14. Jeff KingOct 7, 2011
  15. Carlos Martín NietoOct 7, 2011

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.