From: "Carlos Martín Nieto" <cmn@elego.de>
To: git@vger.kernel.org
Cc: Jeff King <peff@peff.net>, Junio C Hamano <gitster@pobox.com>,
mathstuf@gmail.com
Subject: [PATCHv3 0/4] Be more careful when prunning
Date: Sat, 8 Oct 2011 00:51:05 +0200 [thread overview]
Message-ID: <1318027869-4037-1-git-send-email-cmn@elego.de> (raw)
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 introduces expected failures for the features that
this series fixes.
The third patch changes prune_resf and get_stale_heads so the caller
has to decide which refspecs are the appropriate ones to use. 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 forth patch,
which pretends that a "refs/tags/*:refs/tags/*" refspec was given on
the command-line. That fixes the
git fetch --prune --tags origin
case. The non-tag refs are kept now.
Cheers,
cmn
Carlos Martín Nieto (4):
fetch: free all the additional refspecs
t5510: add tests for fetch --prune
fetch: honor the user-provided refspecs when pruning refs
fetch: treat --tags like refs/tags/*:refs/tags/* when pruning
builtin/fetch.c | 33 +++++++++++++++++++++++----
builtin/remote.c | 3 +-
remote.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++-------
remote.h | 2 +-
t/t5510-fetch.sh | 50 ++++++++++++++++++++++++++++++++++++++++
5 files changed, 138 insertions(+), 16 deletions(-)
--
1.7.5.2.354.g349bf
next reply other threads:[~2011-10-07 22:51 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-07 22:51 Carlos Martín Nieto [this message]
2011-10-07 22:51 ` [PATCH 1/4] fetch: free all the additional refspecs Carlos Martín Nieto
2011-10-07 22:51 ` [PATCH 2/4] t5510: add tests for fetch --prune Carlos Martín Nieto
2011-10-07 22:51 ` [PATCH 3/4] fetch: honor the user-provided refspecs when pruning refs Carlos Martín Nieto
2011-10-12 21:39 ` Junio C Hamano
2011-10-12 23:18 ` Carlos Martín Nieto
2011-10-07 22:51 ` [PATCH 4/4] fetch: treat --tags like refs/tags/*:refs/tags/* when pruning Carlos Martín Nieto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1318027869-4037-1-git-send-email-cmn@elego.de \
--to=cmn@elego.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=mathstuf@gmail.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).