Sverre Rabbelier <srabbelier@xxxxxxxxx> writes: > Currently `git push --delete master:master` results in a somewhat > cryptic error message. ... What does "git push --delete name:destination" say? What does "git push --delete :destination" say? > ... It seems unlikely however, that those new > to git would use the 'old:new' notation,... I doubt that assumption is warranted. I've seen new people on this list who want to be as specific as possible before they get familiar with the tool (I guess it is in the same spirit that they like to spell out long option names instead of short ones). And I happen to think it is a good discipline, when learning a new tool, to understand the underlying generic model before advancing to lazy and useful short-hand. That's how I teach in my upcoming book. Your "old:new" demonstrates a fuzzy understanding of the underlying concept. They are not <old> nor <new>. They are <object name> and <destination>; with this object, update that destination. And you can abbreviate when they are textually spelled the same. I.e. "git push origin master" is equivalent to "git push origin master:master" because both sides are spelled 'm a s t e r' the same way. Having said all that. I tend to agree with Jeff that it would probably make sense to limit this new feature to colonless form and error out if you see a refspec with a colon and --delete at the same time. Also --delete should imply not looking at configured refspecs at all. After all, this is incompatible with the way git expresses push with refspecs, and trying to mix these two would lead to confusion. I do not mean that this new feature is useless nor stupid. Being able to say "git push --delete branch1 branch2" matches _a_ mental model (perhaps Hg inspired one) _very_ naturally. There are branches on the other side, and there is a special operation called 'delete' that you can inflict on them. But it is a different mental model of how git natively does "push". In git model, you give list of instructions <which branch to update with what commit>, and as a special case "what commit" could be "empty" to signal deletion, and "push" carries out the instructions. These are both valid models. They just do not mix, so let's avoid confusion by not allowing both at the same time. -- 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