From: Daniel Barkalow Date: Sun, 09 Mar 2008 06:23:30 GMT Subject: Re: [PATCH 08/11] Allow for having for_each_ref() list some refs that aren't local Message-ID: In-Reply-To: <7vd4q4sg5r.fsf@gitster.siamese.dyndns.org> On Sat, 8 Mar 2008, Junio C Hamano wrote: > Daniel Barkalow writes: > > > This is useful, for example, for listing the refs in a reference > > repository during clone, when you don't have your own refs that cover > > the objects that are in your alternate repository. > > I hate to ask a question that I myself do not have a good answer to, but > it is a bit worrysome that using these extra refs would cause for-each-ref > to report different refs with the same name (the alternate's master branch > and this one's master branch are both called refs/heads/master). > > I think no caller that reads from for_each_ref() keeps track of names that > it has seen and tries clever things like flagging duplicates as errors, > but it still feels like it is inviting trouble. I considered that, and didn't come to any particular conclusion about anything to do about it. In the particular case in this series, there are no non-extra refs, and the for_each_ref caller doesn't actually look at names at all, so it's really not a problem, but the interface could definitely generate odd results. For that matter, non-extra refs are sorted by name, and the extra refs are just done first. I think additional callers are needed before we can determine in more detail how the interface should work, since none of these details matters at all to this one. -Daniel *This .sig left intentionally blank*