On Mon, Oct 05, 2009 at 04:46:23PM -0400, Jay Soffian wrote: > +static int suggest_new_branch_name_compare(struct remote *remote, void *priv) > +{ > + struct suggest_new_branch_name_data *data = priv; > + unsigned char sha1[20]; > + struct strbuf buf = STRBUF_INIT; > + strbuf_addf(&buf, "refs/remotes/%s/%s", remote->name, data->name); > + if (resolve_ref(buf.buf, sha1, 1, NULL)) { > + data->matches++; > + if (data->found) > + strbuf_release(&buf); > + else > + data->found = strbuf_detach(&buf, NULL); > + } > + return 0; > +} This assumes that remote X always has its tracking branches in refs/remotes/X/*. But that is really dependent on how the fetch refspec is set up. True, it will be like that for remotes set up by "git remote" or "git clone", but it isn't universal (and we have tried not to make that assumption elsewhere, like when finding upstream branches to merge from). Doing it right would mean interpreting the refspecs in remote.*.fetch. But this is not necessarily about actual remotes, I don't think. It is really about the names of refs we have, and that you could reference, but that are not actual tracking branches. It's just that refs/remotes is the obvious hierarchy there. But I wonder if what you should do instead is to iterate through each ref, removing refs/heads/* and refs/tags/* (which are uninteresting, as they are already part of the normal ref lookup), and then suffix-match. So looking for "next" would find "refs/remotes/origin/next", or even "refs/foobar/next" if you had some "foobar" hierarchy. It would also match "foo" to "refs/remotes/origin/jk/foo". I'm not sure if that is a feature or a bug, though. Aside from that, I can't think of anything wrong with the idea. Personally I find it more chatty than I would want, because I know what I'm doing. So I would suggest adding an advice.suggestBranchName config option to voluntarily suppress it. -Peff -- 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