It's all about the answers!

Ask a question

Why does RTC allow duplicate workspace names?


SUNIL KUURAM (6431823) | asked Mar 12 '13, 5:52 p.m.
edited Dec 16 '16, 9:29 a.m. by David Lafreniere (4.8k7)

I always wondered why RTC allows duplicate workspace names. Why can't RTC prefix the short RTC user ID (SK for Sunil Kuuram) to the workspace name when I create a new workspace? That won't make the workspace name longer.

This raises confusions for novice users. SCM command line seems not so popular at the moment, but workspaces fail to load due to ambiguity once developers start working on unix. They need to go back to find and rename their workspaces.

Thanks

Sunil


Comments
sam detweiler commented Feb 11 '15, 10:30 a.m.

how is there ambiguity?  the workspaces are BY USER..  so you can't see mine and I can't see yours.. (by default)

Accepted answer


permanent link
Ralph Schoon (61.1k33643) | answered Mar 13 '13, 4:34 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
edited Mar 13 '13, 4:35 a.m.
Sunil, you can also use the UUID of the workspace, instead of its name according to the SCM commandline help. The UUID is unique the name is just an arbitrary label.

If you want to make things like names unique it drains performance, because you always have to look up all existing objects. If you add distributed SCM, how is the system supposed to be able to keep names unique anyway, except on one server?

For components on the server, there is an option to keep names unique. You have to enable it in the server and it will slow down component creation, I assume.
SUNIL KUURAM selected this answer as the correct answer

Comments
Andrea Toncelli commented Feb 10 '15, 5:26 p.m. | edited Feb 13 '15, 11:35 a.m.

 Can you elaborate on the statement:


it will slow down component creation, I assume.

Is this the case, or you are just speculating.  
This 'feature' (creating components with the same name), is dangerous and confusing (in a word wrong). I have tested it and once you have 2 components with the same name it is very easy to not know which one is what.  Further, you can have a stream with both components.  I have not tried to create a WA from it yet. Considering that they both need to write in the same directory....
Let's not propose to start using UUID, please.  Nobody can remember or recognize those.  It is easier to learn how to read hyroglifics.


Geoffrey Clemm commented Feb 11 '15, 12:51 a.m. | edited Feb 13 '15, 1:16 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

To my knowledge, it is not a performance issue (that information is indexed and quickly looked up).   In a non-hierarchical namespace (such as workspace, component, and stream namespaces), there is tension between guaranteeing uniqueness, and having easy-to-remember names for commonly used objects.   I personally am in favor of at least warning on duplicate names, and based on customer demand, this was introduced for components, but in order not to break backward compatibility, it was introduced as an option in the Advanced Properties page of the CCM application.


Ralph Schoon commented Feb 11 '15, 10:35 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

It is likely indexed by UUID and not by the display name. We have other places where globally unique display name enforcement has been added only recently e.g for components.


Evan Hughes commented Feb 13 '15, 11:53 a.m.
JAZZ DEVELOPER
See Jeff's comment about support for component name uniqueness. 

Ralph's statement about distributed SCM is correct - enforcing uniqueness of names in a distributed environment isn't practical. Over time, environments tend to become distributed, so we've avoided making guarantees or promises about it, since those will eventually break. 


Although UUIDs are impractical for humans, they work well in scripts, which is why we suggest their use in long-lived automation. Using UUIDs also prevents scripts from breaking when things are renamed. 

On the RTC project we've encountered duplicate component names due to distributed and dealt with them organizationally: we've renamed the components. 


Evan Hughes commented Feb 13 '15, 11:58 a.m.
JAZZ DEVELOPER
it will slow down component creation, I assume.
Is this the case, or you are just speculating.

Ralph's speculation is correct. Performance was a consideration when we looked at naming uniqueness. Having said that, component and workspace names are indexed, so the lookup is quick, but it still costs some time. 

One other answer



permanent link
Jeff Birkner (15610) | answered Feb 11 '15, 10:21 a.m.

For components on the server, there is an option to keep names unique.

What is the name of this Advanced Property in RTC?  Is there any IBM documentation for this property?

Are there any other Advanced Properties that we should look at for forcing name uniqueness for other items?


Comments
1
Ralph Schoon commented Feb 11 '15, 11:44 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

It is

......./ccm/admin#action=com.ibm.team.repository.admin.configureAdvanced

and then you search (browser search) for component. The entry is named "Encourage component names to be unique. " the property ID is unfortunately not visible there, it is com.ibm.team.scm.discourage.duplicate.component.names=true

Your answer


Register or to post your answer.