aboutsummaryrefslogtreecommitdiff
path: root/transport.c
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2012-02-23 00:43:41 +0200
committerJunio C Hamano <gitster@pobox.com>2012-02-22 18:17:39 -0800
commit6ddba5e241ebe484d53e3573c72386f487e25697 (patch)
tree836c5b5f1ee5d900e87ea9d60c32e576e219b68f /transport.c
parent676552464a871564835e1cb9d0484277b1b75e79 (diff)
downloadgit-6ddba5e241ebe484d53e3573c72386f487e25697.tar.gz
git-6ddba5e241ebe484d53e3573c72386f487e25697.tar.xz
push: add '--prune' option
When pushing groups of refs to a remote, there is no simple way to remove old refs that still exist at the remote that is no longer updated from us. This will allow us to remove such refs from the remote. With this change, running this command $ git push --prune remote refs/heads/*:refs/remotes/laptop/* removes refs/remotes/laptop/foo from the remote if we do not have branch "foo" locally anymore. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'transport.c')
-rw-r--r--transport.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/transport.c b/transport.c
index cac0c065f..c20267ce4 100644
--- a/transport.c
+++ b/transport.c
@@ -1028,6 +1028,8 @@ int transport_push(struct transport *transport,
match_flags |= MATCH_REFS_ALL;
if (flags & TRANSPORT_PUSH_MIRROR)
match_flags |= MATCH_REFS_MIRROR;
+ if (flags & TRANSPORT_PUSH_PRUNE)
+ match_flags |= MATCH_REFS_PRUNE;
if (match_push_refs(local_refs, &remote_refs,
refspec_nr, refspec, match_flags)) {