On Tue, Apr 22, 2008 at 01:45:05PM -0700, Junio C Hamano wrote: > > "git push $there $commit:$name", when $name does not begin with > > refs/, is interpreted as "git push $there > > $commit:$prefix/$name", where $prefix is determined by resolving > > $commit and pulling off its first two directories. > > > > (or maybe this should just be picky and DWIM only for refs/heads and > > refs/tags). So "git push v1.0" is the same as "git push v1.0:v1.0", > > which is the same as "git push refs/tags/v1.0:refs/tags/v1.0". > > Where is $there in your example? Heh, sorry. s/git push/& $there/g. > Funny but I recall recently running "git push ko v1.5.5.1" and it all > worked as expected... I'm not sure what you mean here. Yes, we already special case "git push $there $ref" into "git push $there $ref:$ref", except we use the fully-qualified ref name for the right-hand side. I mention it because I think of this as simply extending that dwimmery to $commit:branch2. That is, there is a complete and unambiguous refspec like "refs/heads/branch1:refs/heads/branch2", and the others are logical DWIM shorthands that expand into such a refspec. > I thought the original poster's example was > > git push $there $commit:branch2 > > where $commit happened to be "branch1". Would we dwim > > git push $there branch1~4:this_is_known_ok > > to refs/heads/? I'm not sure what you mean by "this_is_known_ok". Do you mean the remote already has such a ref? I think the dwim is: 1. if the destination ref is fully qualified, use that 2. if the destination ref is not fully qualified, but resolves unambiguously to a ref on the remote, use that 3. otherwise, do the dwim we are talking about, which is to qualify it using the same type as the source ref So if you meant "the remote has such a ref", then no, I think we stick with the current behavior (2). But I think what you were getting at is: "what is the source type of branch~4"? I am inclined to say "the same as the source type of branch", but I can see how one might think that is getting a little crazy. Related is the question of "what is the source type of <sha1>". In that case, we should almost certainly give an error as we do now. Putting "branch~4" into that category (or HEAD if it is detached) makes some sense to me. -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