0
votes

I'm trying to find solution for TFS 2015 to build "delta" for my build. In TFS 2013 it was done by "Clean Workspace" setting with parameter "Output".

Outputs: to delete all existing outputs but get only those source files that have changed since the last build (Incremental Get);

Could someone tell me please how this should be done in TFS 2015?

Thank you.

2

2 Answers

1
votes

Assuming you mention new build system and you want to have an incremental build. When you add a Visual Studio Build/MSBuild task to build the project, uncheck the Clean option. Check the screenshot below:

enter image description here

Clean option: Set to False if you want to make this an incremental build. This setting might reduce your build time, especially if your codebase is large. This option has no practical effect unless you also set Clean repository to False.

Set to True if you want to rebuild all the code in the code projects. This is equivalent to the MSBuild /target:clean argument.

0
votes

MSFT. Sure , here is the sample. For now we are using XAML Build Definition. For example i did a change and have changeset 24000 for it. My object is only DIS/BR-DEV/csv/my-test.inc.

After triggering the build with Clean Workspace set to "Output" in result with Build Defaults setting: Copy build output to the following drop folder C\TEST , i had a new folder in C\TEST\$(Build.BuildNumber)\csv\my-test.inc ( it is ignoring DIS/BR-DEV as it is specified in Build Template ).

So no i'm trying to build the same functionality using Build Definitions. I'm using "Copy Files" build step for that.

I'm specifying in Source Folder = $(Build.SourcesDirectory) ; Target Folder = D:\BuildAgent_work\1\$(Build.BuildNumber).

And the question is in Content field. I'm not able to specify to copy only my changes. It has next patterns :Specify minimatch pattern filters (one on each line) that you want to apply to the list of files to be copied. For example:

  • copies all files in the root folder. *** copies all files in the root folder and all files in all sub-folders. **\bin** copies all files recursively from any bin folder.

So using this patterns i will not be able to get dynamically based on changeset# my changes.

I also tried to specify C24000 when i'm triggering the build but it just adding it in source folder and that is all.

I'm expecting to see in my Target Folder = D:\BuildAgent_work\1\$(Build.BuildNumber) my my-test.inc.