This project is read-only.

Integrating my Git tasks in MSBuild Extension Pack - feedback needed

May 21, 2012 at 6:12 PM

Hi girls/guys,

Allow me to introduce myself. My name is Wilbert van Dolleweerd. I just got all the latest sources from the Subversion repository and am looking for a way to cleanly integrate my Git task into this project. Michael Fourie was so kind to add me as a developer. You can find some background information about me here.

I currently have my Git task published on GitHub.

I have some questions regarding dependency management and integrating my latest changes into the Subversion repository.

Dependency management.

I use NuGet to manage the dependencies for my Git tasks. My current dependencies are NGit, Moq and NUnit. The way this works is that the C# project file is altered to download (if needed) the dependencies using NuGet whenever the project is built. See for a detailed description here.

NuGet itself is added as a binary to the repository. See for a example here

I can simply add my Git tasks to the correct project (Framework.csproj), but this will mean that NuGet will be added to the repository and that the dependencies for the Git tasks will be installed using the mechanism described above.

Is everyone okay with that? I think it is a superior mechanism compared to including binaries of your dependencies in the project. It also gives you the ability to easily update dependencies.

Any feedback would be welcomed.


Integration into the Subversion repository

Can I simply push back my changes into the Subversion repository (promising not to break the build :-) ) or is there some kind of reviewing process involved? I work with Git and am able to push my changes back into the Subversion repository using Git or I could publish my changes first on my personal Github account and show everyone the changes before I will publish them in the Subversion repository.

Again, feedback is welcomed.


Thanks for your time!

May 22, 2012 at 10:53 PM

Great stuff. I agree with including the dependencies. Note we are using standard TFS for source control and not Subversion. I would recommend publishing your changes frequently to codeplex and when we near a release we can take stock and set any specific goals. What are your .net framework requirements? We have two branches going, one for 3.5 and one for 4.0. If you only support 4.0, thats fine, if you support both, you can choose the one you want to integrate into and I can ensure that the two code bases are in sync.

Looking forward to the code!


May 23, 2012 at 1:02 PM

Hi Mike,

I understand from your comment that I have to use TFS to be able to push back a change into the repository. Is the Subversion repository simply an automated clone of the TFS repository? If so, what is the use?

I currently support 3.5, but 4.0 should not be a problem. I'll go ahead and start making the changes locally and push back a new version when I'm satisfied with the results.

I will integrate NuGet into the repository and use NuGet to automatically retrieve the dependencies for the Git task when building the software. This should work for everyone. 

Talk to you soon!