On Thu, 2007-09-27 at 23:27 -0700, Junio C Hamano wrote: > You can almost do it with > > git push --all $remote > > except there is no way to automagically remove the branch you > removed from the local repository. For that, we would need a > new --mirror option to "git-push". Yup! I actually was looking for such a thing in the git-push man page, but was unsuccessful. I was living with git-push --all for a little while before I thought I'd ask. Unfortunately, the preferred setup (having the backup machine actively perform fetch and prune) is not very nice for me due to firewalls. > > I think it is trivial to do for native transports, as we first > get the list of all refs from the remote side before starting > the transfer. You need to change the last parameter called > 'all' to remote.c::match_refs() into an enum ('push_all' being > one of choices), introduce another enum 'push_mirror', and teach > it to "match" the remote (i.e. dst) ref that does not have > corresponding entry on our side (i.e. src) with an empty object > name to mark it removed. Then the part marked as "Finally, tell > the other end!" in send-pack.c::send_pack() will take care of > the actual removal. I should have a look, but if someone else wants to work on this they shouldn't block on me: work already made me get hit by a bus on one project (luckily I wasn't important), and the storm is not over. Thanks, fdr - 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