On Fri, Feb 13, 2009 at 5:35 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > A few things I forgot (and before I go to bed). > > If remotes/<name>/HEAD already points at a branch frotz, and you peek the > remote (i.e. you do not actually run "fetch" to download objects, but just > "ls-remote" it) and find out that "HEAD" does not point at the same commit > as "frotz" but it now points at the same commit as another branch > "nitfol", you probably would want to update it to point at "nitfol", but > it was unclear from the description in the documentation if this option > was meant to perform this kind fo update, or only to set a missing HEAD. - set-head -d <remote> deletes - set-head -a <remote> sets HEAD to whatever remote it - set-head <remote> <foo> sets HEAD to foo I don't know how to be more explicit than that I think that's what the documentation indicates. > If you meant to do an update, there is one thing to watch out for when you > reuse the logic used by clone. It favors "master" if more than one > branches point at the same commit as HEAD. Yes, I know. > You need to customize it to > favor the one that the HEAD points at on the local side before you start > (iow, try to keep the current value when you can). > > For example, if it points at "frotz" locally when the command was started, > and you found out that HEAD now points at the commit at the tip of "frotz" > and "master" branches by peeking, you do not want to repoint HEAD from > "frotz" to "master". I think that is an unnecessary complication for what is really a corner case. And anyway, it is just hacking around the fact that we don't really know what the remote side is if multiple branch heads have the same SHA1 as HEAD. You proposed a series a while back so that git could unambiguously determine what a remote symref points to, and I think that's the better way to fix this problem. If the user runs "git remote set-head -a <remote>" they will get whatever "git show <remote>" indicates is the remote HEAD. If they don't like that, they can set their <remote>/HEAD explicitly using the alternate syntax. j. -- 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