Thread (17 messages) flat view 17 messages, 7 authors, 2016-06-15

Re: [PATCH, 4th version] git-branch: register where to merge from, when branching off a remote branch

From: Paolo Bonzini <hidden>
Date: 2016-06-15 22:42:57

Possibly related (same subject, not in this thread)

I have a feeling that "git checkout -b" and "git checkout -B"
should be taught to explicitly use "git branch --no-track" and
"git branch --track" to create a new branch (currently it does
not even use "git branch" as far as I can tell).  With your
patch, I suspect that you have to say "git branch topic
origin/topic" and then "git checkout topic", which means you
made the three-step process into two steps, but you could have
made it into one step.
Well, yes, the next part would have been to patch git-checkout.  But this one is already proving to be complicated enough.  :-)
I'll send out an untested patch to
git-checkout so that you can try it out in a separate message.
I saw it.  I tested your patch and it seems to work.
 
 - (micronit) Is it true that both strlen() tests are about long
   *branch* names?
If you consider something like "origin/next" to be a branch name, yes.
 - (moderately serious) The code blindly trusts that
   "refs/remotes/foo/bar" tracks "refs/heads/bar" from remote
   named "foo", which is a bit disturbing.  With the default
   configuration git-clone and git-remote creates, it always is
   the case, but I suspect you might want to at least verify
   that assumption (the user can have different settings in the
   config), if not figuring them out by reading the existing
   configuration yourself.
Ouch.  Absolutely right, but this means I will prepare the patch later then.
quoted
+	else if (dwim_ref(start_name, strlen(start_name), sha1, &real_ref))
+		remote = !prefixcmp(real_ref, "refs/remotes/");
 - (pure question) What happens if dwim_ref() returns more than one?
Then, real_ref is the one matching sha1.

Considering your other objection about the naming of the variable, what about enabling/disabling the tracking using remote.REMOTENAME.tracklocalsubbranches?

Paolo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help