Fabian Franz <git@xxxxxxxxxxxxxxx> writes: > When the track parameter is set to +<branch>, on update command a > new branch is created tracking the remote branch (if it does not > yet exist). Then the branch is checked out and git-pull is run. Usually a "+" in front of a refspec means "allow forcing non-ff update", but here it means completely different thing. The syntax is confusing. But that aside, I do not know if the semantics of this patch makes sense to begin with. Should this really be a persistent property of a submodule? With your patch, this is always triggered for modules you did "--track +branch" when you added them, but (1) not for others you did not say "+" when you added, and (2) you cannot disable the auto-pull for the ones you did even if you wanted to. It feels it might be better to make it a property of one particular invocation of "update" action, and more generally, the entire series feels like a very specific hack that is meant to cover/impose your particular workflow (and not others'). Don't get me wrong. I do not see any problem in supporing it well, if that particular workflow is a good workflow and a generally applicable one. But I do not think it is documented well enough. "--track creates one configuration in the .git/config file" and "update always checks out the tip of the named branch if such configuration is set" may be fine descriptions of what each piece does. The readers will be left puzzled without an explanation of the bigger picture to understand why it is (sometimes) a good idea to make these pieces do what they do. -- 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