This is a, rather annoying, effect of using git submodules. aux/broccoli just points to a particular commit in the broccoli repository. Different topic branches in the main bro repository can point to different commits of submodules. This mostly happens if you are working / looking at a branch that was branched off master a while ago and the submodule pointer in master has then been updated.
> (1) Why is it finding a difference?
For some reason that I don't understand, a git checkout does not check out the appropriate commit of the submodules. It rather leaves the submodules untouched. In order to also do a checkout of the submodules you need to do a
Hmm. I'm running 1.7.5.4. I guess that added the recursive then....
You can probably use:
git submodule update
git submodule foreach git submodule update
(IIRC the broccoli repository has submodules of its own, so you need to either to it recursively or do it "by hand" using the submodule foreach)
Assuming that you were in "master" and did a check-out of "topic/foobar"
All I did was check-out "master", I'm pretty sure. (Is there a command
that will tell me how I wound up with the tree I have?)
>
Unfortunately not. Since in theory it should not matter how you wound up with the tree. The submodules just bust this nice theory
What could also have happend is that you cloned (and checked out) master a while ago and then later updated it with a git pull/fetch. If the submodule pointers in master changed in the meantime you would also get this notice.