TFS 2013.4 using GIT submodules doesn't work

We just upgraded our TFS to TFS 2013 update 4 (TFS2013.4) and we are using GIT submodules in our repos (which we updated with some custom MSBUILD magic on the build server).

However, now with the latest update, our builds are not working with this message:

Unable to set unknown element 'Microsoft.TeamFoundation.Build.Activities.Git.GitPull.CheckoutSubmodules'.

It looks like Microsoft has added some sort of support for GIT submodules, however this won't work on our build server.

Any ideas on how to fix this?

+3


source to share


2 answers


Ok, this was caused by my own stupidity (like most of the time).

I figured that simply installing Visual Studio Update 4 (VS2013.4) would install the same required build server client libraries as TFS, however I was wrong.

Just updating the TFS build servers to TFS2013.4 fixed the issue.

EDIT: The only problem solved is that the "hackety MSBUILD" magic for updating submodules works again, there is no built-in suppport.

It looks like the different versions between TFS2013.4 on the TFS server and TFS2013.2 on the build servers caused an issue whereby the repo could not be checked out at all, regardless of whether it had submodules or not.

As the error in the question comes up, it looks like the build server started supporting submodules natively, but I was unable to get the job done.

EDIT 2:



For those asking for a hackety solution, I ended up using a plain text file _netrc

in the user profile folder of the build service, like this:

machine <hostname1>
login <login1>

      

Git - How to use Windows .netrc file to save user and password

I also ran into the problem that when the TFS Build Service Account is running in the TFS Build context, the HOME environment variable is not set, so I had to set it manually:

under System Properties> Environment Variables

Set the system variable HOME

to%PROFILE%

+3


source


FYI. Seems like checking a submodule for TFS2015 ... Look at the image for setting up git build , there is a checkbox to update submodules.



+1


source







All Articles