When I try to build using TFS with Git, there's a limitation whereby TFS's git provider doesn't yet support sub modules. Bit of a pain, but what the heck, I'm able to tell TFS to run a Batch file prior to compilation. I've used this to call a manual git script to update all my submodules in my "super" project.
The command this batch file runs is simply: git submodule update --init --recursive
This worked fine and dandy before I migrated the submodule source to TFS, however now the TFS build is failing, because the above git module script no longer works.
So, what TFS does before a build is Pulls the current sources from Git into a folder on the build server, which I have access to.
If I open Git Bash to this folder and run the following command(s): git submodule init git submodule update
I get the following error, and I can't work out for the life of me what it is. I've tried searching this specific error which generally points to a submodule commit being pushed after the "super project" repo is pushed. But I can verify that all submodule commits & pushes are performed BEFORE the "super project" commit & push is done. Here's the output from the TFS git commands:
james@TFS /C/Builds/1/Technique Webs/MIS Console 5.2 Development/src (5.2development)
$ git submodule init
james@TFS /C/Builds/1/Technique Webs/MIS Console 5.2 Development/src (5.2development)
$ git submodule update
Username for 'http://tfs:8080': james
Password for 'http://james@TFS:8080': <password>
From http://TFS:8080/TFS/Technique/_git/Technique%20Library
* branch HEAD -> FETCH_HEAD
fatal: reference is not a tree: 33106ea146d470159e327c1b2d623d14f522cdd4
Unable to checkout '33106ea146d470159e327c1b2d623d14f522cdd4' in submodule path 'calc-engine'
james@TFS /C/Builds/1/Technique Webs/MIS Console 5.2 Development/src (5.2development)
$