It's all about the answers!

Ask a question

SCM: Locking a subtree


Virginia Brown (9333441) | asked Jan 28 '11, 8:40 a.m.
edited Oct 10 '17, 1:42 p.m. by David Lafreniere (4.1k7)

The application we are working with generates the codeset through the GUI interface and we need to ensure that users aren't merging files. You can multi-select and lock a set of files, but is there a way to lock a whole tree? eg select-all then lock?

Accepted answer


permanent link
David Lafreniere (4.1k7) | answered Oct 10 '17, 1:42 p.m.
FORUM MODERATOR / JAZZ DEVELOPER

As of RTC 6.0.5 there is still no way to lock a folder (such that all child files will be locked).
As mentioned in the other answers, these requests are tracked here:
Read and write permissions at the folder level. (63844)
Provide write permission at the versioned item granularity (171106)


Here are some other ways to have multiple files locked in batch:


Locking the Entire Stream or Component:


In RTC 6.0.2 we added a feature that lets you lock streams and components to prevent deliveries to the files in those streams or components. Stream and component locks work in a similar manner to file locks but apply to the entire stream or the entire component in a stream. When a stream or component is locked, any attempted deliveries by users who do not own the lock will fail with an appropriate error message. The user that holds the lock can still perform deliveries to the stream. A lock does not only prevent deliveries, it also prevents any operation that affects the files in the locked component or stream. For example, a component replace is also prevented.

See:
-New & Noteworthy Mention: https://jazz.net/downloads/rational-team-concert/releases/6.0.2?p=newsDetails#stream-locking
-Stream/Component Locking Demo Video: https://www.youtube.com/watch?v=b8QwzwUF2ZY
-SCM Command Line Client 'set lock' command: https://www.ibm.com/support/knowledgecenter/SSCP65_6.0.4/com.ibm.team.scm.doc/topics/set_lock.html

Prior to 6.0.2, one approach might be to add a deliver advisor in the process spec to restrict deliveries to particular streams. By protecting your stream by particular roles or users, you can effectively lock the stream down.
"http://jazz.net/library/article/215#protect_some" describes how to protect individual components in a stream, the same approach can be used to lock down the entire stream.


Using the CLI (could write a custom script to automate this)
You could use the scm commandline which allows you to specify multiple files... 'scm lock acquire -r <repo> -s <stream identifier> -R'
To get the list of files in a component you could use the following command... 'scm list remotefiles -r <repo> <stream identifier> <component identifier>'
To get an output that is consumable you could use the --json option.


Multi-selection in the Rich Clients (Eclipse/Visual Studio)
You can multi-select files in the Package Explorer or the Repository Files view and use the Lock context menu action action. There is no way to select a folder however, and have it recursively lock all child files.

Michael Valenta selected this answer as the correct answer

Your answer


Register or to post your answer.