On Sat, 8 Mar 2008, Junio C Hamano wrote: > Daniel Barkalow <barkalow@xxxxxxxxxxxx> 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* -- 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