Allowing shared folder to have different names.

If you are having a problem using Vault, post a message here.

Moderator: SourceGear

Post Reply
vdumas2000
Posts: 3
Joined: Mon Nov 12, 2007 11:07 am

Allowing shared folder to have different names.

Post by vdumas2000 » Mon Sep 15, 2008 11:48 am

Vault Team and members of this community.

Vault is a great product with a strong future.
We have a inquiry about a feature that we could not find and if you have any plans on working on such feature.
Also if you have a workaround that would be great.

Inquiry
--------
One important feature for us would be to enable automatic nightly builds and automatic compilations.

To do so we would like team leaders to be able to control what should be built or not.
To do so we need is a way to create a "link to a repository folder" or an "alias" that can be modified in time.
For instance I want to manage a link list to point to the latest versions :
$/[Product]/Release/Latest -> $/[Product]/Release/3.0

The code base for this feature can be described also as "a share that allow you to use a different name".
Visually in vault tree there could be a way to represent this by specifying a location to where it points.
Inspired from Unix : Latest -> $/[Product]/Release/3.0.

So that when we "get latest" or "checkout" it would be considered exactly like a share, except that you can use a different folder name.

That would centralize which branch is going to be compiled right in vault and would allow modifications responsibilities by developers and our build systems could always focus on compiling what is in Latest. It has the benefit to allow more flexibility for developers who need to rename shared folders in their sub projects.

More details/Specific scenario
-------------------------------------
We are managing several branches and use a nomenclature for development trunk and release branches.

Development branches:
[Product]\Dev\Trunk -> (Compiled automatically)
[Product]\Dev\4.0
[Product]\Dev\5.0
[Product]\Dev\[future versions]

Released branches:
[Product]\Release\1.0
[Product]\Release\2.0
[Product]\Release\3.0
[Product]\Release\Latest -> 3.0 (Compiled automatically)

We tried several things, to accomplish this but none is really great:
1) we coded a configurable build that uses a XML file specifying which lists the branch to compile. We don't like this since we need to modify this file on a regular basis and we need to read this file constantly to find out which branch is currently selected to be compiled.

2) we coded something that allowed us to derive for each products what is the latest based on a vault share that was created under the latest folder. The problem with that is that our build is considerably slowed down although it is better than solution 1 since all developers can change the Latest target and see which version is currently the latest.

3) we tried to rename our latest version to the name "Latest" every new releases. That really creates problems with the vault caches on all developers machines who have previously "got latest" a previous version in the same directory location.
We are still using Vault 4.1.1 and we encounter issues when replacing/renaming repository folders.

4) we tried also to use shadow folders and we did not like how it performed (speed of updates, impact on servers).

5) we cannot use shares without renames since we need our build system to depend only on string constants so words like "latest" "trunk" are fine, but "3.0" would change next version :D
Key words : symbolic links, physical links aliases folder pointer, shared folder, share with different name.

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Re: Allowing shared folder to have different names.

Post by lbauer » Mon Sep 15, 2008 12:20 pm

Have you tried labeling? You could label using the date as the label, and the latest date would be the latest version.

Then you could Get by Label to do your build.
Linda Bauer
SourceGear
Technical Support Manager

vdumas2000
Posts: 3
Joined: Mon Nov 12, 2007 11:07 am

Re: Allowing shared folder to have different names.

Post by vdumas2000 » Mon Sep 15, 2008 2:53 pm

I just investigated labeling and retrieving labels using command-line of vault.

To build automatically the latest code, you would need to "get latest" for each repository folder that is "tagged" as latest.

With labeling, labels every night or for everybuild is not really productive, plus developers would not know visually which version is labeled without a show label at all time.

By labeling, you basically "timestamp" the code, instead of "tagging" the folder. For this to work we need to "mark" the folder and its children but I did not find the feature for that.

In other words a "tag" feature (not the best name for it) would be another good feature with its set of GetTag.

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Re: Allowing shared folder to have different names.

Post by lbauer » Tue Sep 23, 2008 7:24 am

Thanks for the suggestions. I've logged feature request 13713 to allow shared folders to have different names.
Linda Bauer
SourceGear
Technical Support Manager

Post Reply