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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html