Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A custom delta deploy step for Sitecore TDS deployments using Git. Note: This is a third party extension, so it isn’t affiliated with Hedgehog or Sitecore, and their support teams should not be contacted for help with this. Instead I encourage developers to follow the debugging steps provided below, and to discuss their projects on the #tds channel in the Sitecore Community Slack.

Build status NuGet Licence

NuGet package available: SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy

Overview Blog Post

Debugging GitDeltaDeploy

Considerations for Builds/Deployments

GitDeltaDeploy Features


  • Ensure you have git.exe in your PATH environment variable.
  • Install the NuGet package into your TDS projects.
    • if you wish to use GitDeltaDeploy from VisualStudio, OR if your TDS projects DON'T use the HedgehogDevelopment.TDS NuGet package, you need to copy the packages/SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy.x.x.x/build/SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy.dll file to your Hedgehog MSBuild directory (C:\Program Files (x86)\MSBuild\HedgehogDevelopment\SitecoreProject\v9.0).
    • if you DO use the HedgehogDevelopment.TDS NuGet package on your build server, the build will copy the SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy.dll file to the HedgehogDevelopment.TDS NuGet package folder, alongside the HedgehogDevelopment.SitecoreProject.Tasks.dll so it can be used.
  • Activate GitDeltaDeploy
    • by setting <CustomGitDeltaDeploy>True</CustomGitDeltaDeploy> in your config (either in scproj, scproj.user, TdsGlobal.config or TdsGlobal.config.user).
  • Deploy using either
    • the project itself (right click project -> Deploy)
    • deploy the solution (right click solution -> Deploy Solution)
    • trigger a 'build' on MSBuild from the command line.
  • View the /packages/SaintSkeeta.TDS.BuildExtensions.GitDeltaDeploy.x.x.x/build/readme.txt file for additional settings and options.

How it works

The initial deployment will do a regular deployment, and save a LastDeploymentGitCommitId.txt file in your DeltaArtifactsFolder (which is {project}/Report by default). Subsequent deployments will use this file to check if there's difference between the last deployment commit id, and what the local repository is currently at. It finds the difference in .item files, and saves a list of changed .item files in {DeltaArtifactsFolder}/ChangedItemFiles.txt. Then Sitecore TDS will use a custom 'CullItemsFromProjectClass' that checks the ChangedItemFiles.txt file for each item. If the file is found in the list, it is 'deployable'. If not, TDS skips it. The LastDeploymentGitCommitId.txt file is then resaved with the newest commit id, ready for the next deployment.


A custom delta deploy step for TDS deployments using Git.







No packages published