CCI seem offering broad opportunity to set repository and even after it is set, still, one can go to Stages and set additional rules there. Now, here is the repository I have
In our world we do a lot of branching. And periodically, branch changes. But the CI build I am trying to do should continue un-altered, besides, sometimes it has to build out of “next” branch. So, I went into repository unlocked the “Relative folder” field and got the message that “changing relative folder settings will result in creating a new repository in the database. Old repository and changesets associated with it will be archived”. I don’t think, this is critical to monitor old branch changesets, unless you say so. I mean, how it can affect us?
So, I tried to “be smart” and created a variable, and tried to set $Application.MyRelativeFolder$. Pressing “validate” didn’t uncover the issue. But I noticed that if I set “Relative folder” to an invalid folder that doesn’t exist in TFS, “validate” still works. So, I tried to substitute Project collection URL with a variable and it failed. I assume, using variables on this page is not possible, correct?
To put in perspective, currently, we use FinalBuilder in which we have variable DEV_ROOT. This points to the branch root folder, e.g. C:\dev\Maint\181Maint. When this branch life ends and new branch spins out, we simply change last part [181maint] to the new name.
Also, some of the examples I saw are too simplistic. We have branch folder under which in different hierarchies we have 200+ projects and we use 10-12 solutions to build all of these. But also, under branch root we have other folders that we definitely don’t want monitor, build, even download (get latest) by CCI, etc. So, I went to repository-filtering-path filtering-exclude and added (for example)
CodeAnalysis<br> **
Am I correct to expect that CCI will not monitor folder CodeAnalysis, which is subfolder of folder posted in Relative Folder
Thank you!
PS: are there any other learning resources besides this forum and documentation?
Hi Anatos,
The Relative Folder field does not expand variables or expressions. Rather than change the repository settings each time you start a new branch, we would recommend setting the Relative Folder to “Development/Main” and use the branch monitoring features on the Branches tab to pick up changes for all folders which are marked as a ‘branch’ in TFS under this folder. You can then select the relevant Branch from the Queue Options dialog when starting a new build or set the default branch for the configuration by clicking on the [mappings] button next to the repository in the configuration wizard.
The Path Filtering is only used to reduce the files which are checked out to the repository workspace. This does affect which folders and files are monitored. The Changeset Exclude pattern is more relevant in this case, this can be used to skip any changesets which only include files matching the specified patterns.