[PATCH] remote: make prune work for mixed mirror/non-mirror repos

2013-06-20 Thread Dennis Kaarsemaker
When cloning a repo with --mirror, and adding more remotes later, get_stale_heads for origin would mark all refs from other repos as stale. In this situation, with refs-src and refs-dst both equal to refs/*, we should ignore refs/remotes/* when looking for stale refs to prevent this from

Re: [PATCH] remote: make prune work for mixed mirror/non-mirror repos

2013-06-20 Thread Junio C Hamano
Dennis Kaarsemaker den...@kaarsemaker.net writes: When cloning a repo with --mirror, and adding more remotes later, get_stale_heads for origin would mark all refs from other repos as stale. In this situation, with refs-src and refs-dst both equal to refs/*, we should ignore refs/remotes/*

Re: [PATCH] remote: make prune work for mixed mirror/non-mirror repos

2013-06-20 Thread Dennis Kaarsemaker
(Sorry, I sent v2 before seeing this mail) On do, 2013-06-20 at 15:46 -0700, Junio C Hamano wrote: Dennis Kaarsemaker den...@kaarsemaker.net writes: When cloning a repo with --mirror, and adding more remotes later, get_stale_heads for origin would mark all refs from other repos as stale.

Re: [PATCH] remote: make prune work for mixed mirror/non-mirror repos

2013-06-20 Thread Jeff King
On Thu, Jun 20, 2013 at 03:46:20PM -0700, Junio C Hamano wrote: Dennis Kaarsemaker den...@kaarsemaker.net writes: When cloning a repo with --mirror, and adding more remotes later, get_stale_heads for origin would mark all refs from other repos as stale. In this situation, with refs-src

Re: [PATCH] remote: make prune work for mixed mirror/non-mirror repos

2013-06-20 Thread Dennis Kaarsemaker
On do, 2013-06-20 at 19:08 -0400, Jeff King wrote: I wonder why Dennis wants to refs/*:refs/* in the first place. It is not usually a useful thing to have in a non-bare repository, because fetches will overwrite local work on branches. If he just wanted the automatic git push --mirror

Re: [PATCH] remote: make prune work for mixed mirror/non-mirror repos

2013-06-20 Thread Junio C Hamano
Dennis Kaarsemaker den...@kaarsemaker.net writes: Going back to your original example: [remote origin] url = git://github.com/git/git.git fetch = +refs/*:refs/* mirror = true [remote peff] url = git://github.com/peff/git.git

Re: [PATCH] remote: make prune work for mixed mirror/non-mirror repos

2013-06-20 Thread Junio C Hamano
Dennis Kaarsemaker den...@kaarsemaker.net writes: I'm not doing that in non-bare repositories, neither do I use it for pushing. It's for a continuous integration system, which never has any locally created branches or commits, but does integrate things from different remotes in some cases.

Re: [PATCH] remote: make prune work for mixed mirror/non-mirror repos

2013-06-20 Thread Dennis Kaarsemaker
On do, 2013-06-20 at 16:30 -0700, Junio C Hamano wrote: Maybe there is a miscommunication. $ git ls-remote git://github.com/git/git.git | grep remotes/ shows that that repository, your origin, has refs/remotes/github/html Yes, I misunderstood you and see the problem now. Thanks for

Re: [PATCH] remote: make prune work for mixed mirror/non-mirror repos

2013-06-20 Thread Junio C Hamano
Dennis Kaarsemaker den...@kaarsemaker.net writes: I'd really like to have C as well though, would you accept a patch that implements it? I already said I dunno, and asking me 5 minutes after that would not change my answer X-. I tend to agree with Peff that it is papering over the underlying