On Sat, Feb 14, 2009 at 05:30:30AM -0500, Jay Soffian wrote: > In this situation, git remote set-head --auto should not try to guess > which HEAD the user wants. This patch causes set-head to provide a > useful error instead: > > $ git remote set-head origin --auto > error: Multiple remote HEAD branches. Please choose one explicitly with: > git remote set-head origin another > git remote set-head origin master Thanks. The patch looks good to me, with two comments and one style nit: > + else if (states.heads.nr == 1) > + printf(" HEAD branch: %s\n", > + states.heads.items[0].string); > + else > + show_list(" HEAD branch%s:", &states.heads, ""); I was happy to see the common case of "we unambiguously determined HEAD" falls back to nicer output (though I admit I did a double-take seeing both show_list and the states.heads.nr check, I see it is because show_list always insists on a newline). That should help current users with simple setups, but also support unambiguous HEAD reporting in the future (and based on what Daniel said earlier, http should just need a client patch to pass the information up the callstack). > + if (opt_a) > + printf("%s/HEAD set to %s\n", argv[0], head_name); This was a surprise based on reading the commit message, but I think it is a sensible enhancement. > +cat > test/expect <<EOF > +origin/HEAD set to master > +EOF > + > +test_expect_success 'set-head --auto' ' > + (cd test && > + git remote set-head --auto origin > output && > + git symbolic-ref refs/remotes/origin/HEAD && > + test_cmp expect output) > +' I had to read this test a few times to convince myself it was right, since you throw away the output of symbolic-ref. I think it makes more sense to just test the post-command state, which is what you actually care about (and then you are also not dependent on the human-readable output of "remote set-head"). I.e.: cat > test/expect <<EOF refs/remotes/origin/master EOF test_expect_success 'set-head --auto' ' (cd test && git remote set-head --auto origin && git symbolic-ref refs/remotes/origin/HEAD > output && test_cmp expect output) ' -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