Is it possible to have per project Tags Path vs. using Repository configuration?

We have a large monolithic repository due to tons of project interdependence and shared code.  We would like to group tags up into project specific Tag Paths such that we can build from tags on demand.

The current repository is about 6gigs and we have a half dozen projects or so, I think you can see why we don’t want to have to create seperate repositories for each project just to configure per project Tag Path.  Perhaps this feature is already present, we’re kinda new at CI.

Thanks!

Hi,

I’m assuming that you are using a Subversion repository. You can currently use branch mappings to associate a repository branch with each configuration.

We tend to deal with folders under the /tags/ path in Subversion as read-only snapshots of each branch in a similar way to how tags are used for other repository types such as Git and Mercurial. 

My understanding is that you are using folders under the /tags/ folder like branches - making changes under these folders which you wish to build continuously? In this case, you can set Branches to Monitor to “By pattern” and the specify “/tags/” as the Branches Path. You can use the branch mappings to link each of the tags subfolders to a configuration.

Please note however that Continua commits all matching repository branches to a Mercurial repository on initialisation and copies this to the agent. We do this so that we only have to sync the differences for subsequent builds. Therefore having one Continua repository for the whole 6GB repository will have significant impact on performance. Also if each branch contains a separate project with substantially different files then it may take some time to switch branches when checking out files for each build.

You will get better build throughput if you have one repository per project. The next minor version release of Continua will have a repository “Clone” button to make it easier copy settings.

If you let us know more about your repository structure and how the folders are used, we can provide more specific help on the best way to set this up. 

We’re using Subversion, and tag releases in subfolders of Tags. We’d like to be able to rebuild a previous release by specifying the Tag to build from, however as we’re currently using tags we either have to deal with a huge list of Projectx/Releasey type tags or have separate repositories configured with tag path as Tags/Projectx (presumably).

This is just something another developer noticed, generally we do not have to rebuild previous releases and we have no plans to do continuous builds from Tags.

Are you referring to the list of tags in the Queue Options dialog? These are filtered as you type, so I can’t see why a large number of tags would be a problem?

We could add a tag filter option per configuration, but I don’t think is a feature a lot of users would require. We do however plan to allow variables on some more repository fields in the future - we’ll make sure that the tags path is one of them.  

Correct, the Queue options dialog. We can certainly filter, however the list is long and will end up with 80% of the entries being completely incompatible with the project. Can’t build projectX from a tag for projectYfor example.

I think variables would provide a good solution to this. It’s not a big issue for us, just something we noticed.

Thanks.