path: root/remote.h
diff options
authorCarlos Martín Nieto <>2011-10-15 05:04:25 (GMT)
committerJunio C Hamano <>2011-10-16 04:56:13 (GMT)
commited43de6ec35dfd4c4bd33ae9b5f2ebe38282209f (patch)
tree941a49f45a789b247840f52e74183a52a066500b /remote.h
parentc500352e0de75db34b1a071a9e250b815d10f95b (diff)
fetch: honor the user-provided refspecs when pruning refs
If the user gave us refspecs on the command line, we should use those when deciding whether to prune a ref instead of relying on the refspecs in the config. Previously, running git fetch --prune origin refs/heads/master:refs/remotes/origin/master would delete every other ref under the origin namespace because we were using the refspec to filter the available refs but using the configured refspec to figure out if a ref had been deleted on the remote. This is clearly the wrong thing to do. Change prune_refs and get_stale_heads to simply accept a list of references and a list of refspecs. The caller of either function needs to decide what refspecs should be used to decide whether a ref is stale. Signed-off-by: Carlos Martín Nieto <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'remote.h')
1 files changed, 1 insertions, 1 deletions
diff --git a/remote.h b/remote.h
index 9a30a9d..f2541b5 100644
--- a/remote.h
+++ b/remote.h
@@ -164,6 +164,6 @@ struct ref *guess_remote_head(const struct ref *head,
int all);
/* Return refs which no longer exist on remote */
-struct ref *get_stale_heads(struct remote *remote, struct ref *fetch_map);
+struct ref *get_stale_heads(struct refspec *refs, int ref_count, struct ref *fetch_map);