> I do not understand. We are talking about three different things here: > > 1) the committed state of the submodule > 2) the local state of the submodule > 3) the state of the "tracks" branch > > We always have 1) and we have 2) _iff_ the submodule was checked out. We > only will have 3) if "tracks" is set in .git/config (for consistency's > sake, we should not read that information directly from the .gitmodules > file, but let the user override it in .git/config after "submodule init". > I think the implication is that .gitconfig states "I'm expecting that submodule X will always be tracking branch name 'Y'" and that you wouldn't ever override it in .git/config. If you then switched submodule X to branch Z, then committed the superproject, that commit would contain a change to .gitconfig also (to say I'm expecting to track Z rather than X') ? >> Or you need the submodule to be aware he's one, and then one would have >> some kind of "magic" word to name this sha1. And tools would find out in >> the supermodule what it translates into. > > You lost me there. > This sounds like it relates to the problem that what I call X and Z, you might call Bibble and Bobble; you could use some kind of SHA1 in lieu of a textual name to make sure everyone was talking about the same thing ? > Ciao, > Dscho > > -- 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