I have a huge clearcase snapshot view including about 10 VOBs, and it takes more than an hour to update the whole view.
Now I'm trying to change the config spec a bit to select several file elements with another timestamp. But by default, changing config spec will trigger a whole view update which is really slow. What I need is just to update the file elements with the updated timestamp.
I read through the official document about cleartool setcs, and also googled some time but it seems impossible. So Here's my question. Is it possible to change config spec of a snapshot view but only update partially?
Actually I also got a workaround here.
I opened the snapshot view in ClearCase Explorer, changed the config spec, clicked OK to update, and then cancelled after the update started. After that, I just updated those selected file elements.
The workaround was OK just for readonly. But I could not checkout/checkin because of the abort of update. The following error popped up when trying to checkout. So I had to update the whole view again.
An update appears to have been aborted or errors were encountered during an update. An update must be performed on the element to enable
a checkout.
Hence, here's another question. Is there any "brute" way to avoid the error for the workaround, since I know the config spec change won't affect other elements?
Besides, any other idea or workaround to solve my problem is absolutely welcomed.
One workaround would be to use a dynamic view (at least to try different config specs and check that the right versions are selected, before using that config spec on a snapshot view if you must.
Another approach is to use 10 snapshot views, one per Vob, because you can update them in parallel, making the all process faster, and starting some of the checkouts faster
Related
One of my Logic Apps is triggerd by the SFTP trigger. Today I changed the watch folder to a different folder, and I can't get it to trigger any more. I had the issue previously and had to create a new SFTP connector. This time I was able to resolve it by creating a new Logic App with all the same logic as the original. This is simply not acceptable. Its as if when programming if your program stops working your only recourse is to write it from scratch. How is one supposed to diagnose a trigger not triggering? I don't want to be faced with trowing away all my work again in the future.
Did you change the path using design view or code view?
When using the Code View, You need to make sure you are also updating the folderId and the metadata properties.
folderId is a Base64 encoding of the path. The same for the first property the metadata object.
When using the designer view, it seems that the trigger state (required to be able to recognise new items) is better refreshed when browsing through the folders on the SFTP trigger box (as opposed to just changing the path string)
HTH
I have a clearcase view which I have not updated in quite some time. It has some view private files and I am sure a lot of other things as well. Is there anyway I can delete all the content of the view and force clearcase to give me everything again?
When i try to build the project from my view (After a rebase) I get a lot of build errors, but if I build the project from the actual stream, I get no build errors at all, so I am guessing my view is a bit messed up, and as I have no files I need to keep there, i would very much like to just reset it.
EDIT:
I am using a snapshot view
First of all, you need to make sure that that your config spec reflect the config of your UCM Stream.
If we are talking about a snapshot view, simply delete everything in it (except the hidden view.dat file), and type (at the root directory of your snapshot view):
cleartool setcs -stream
That will force the view to:
rewrite its config spec in accordance with its associated Stream
launch an update of your snapshot view.
We have a config spec that we use for our builds that we encourage all developers in our organization to use so that they can run any task in our build without fear of failure. Every now and again we need to update that config spec to include new elements or exclude old elements.
When we do this, the process is to write a quick mail to all of our developers telling them to manually update any views that they use to build our system with the current config spec.
This is annoying and error prone and thus leads many developers to just ignore those mails and then we get called because the build's broken.
I'm very interested in defining the config spec centrally somehow so that all views can use that config spec and we can update it underneath of people. This may seem draconian but when you have hundreds of developers and they're all supposed to be running the same builds, it seems to make sense.
I've already investigated the idea of using a share to store the config spec and then include it in the developer's views using an include line, but as the documentation states: "Include files are re-read on each execution of setcs and edcs." This appears in testing to mean what it seems to mean, that the only time the rules are re-evaluated are in the context of editing the config spec in some way.
The solution I'm looking for would re-evaluate the config spec every time you interact with clearcase, or at the very least update. In that way, I could manage the config spec for everyone.
Thoughts?
I can work, especially if your included config spec doesn't change too often.
Each time it will change, your users will have to run
cleartool setcs -current
(as explained in the example#2 of this technote)
You will then need to decide where to store that common config spec:
on a share drive
on a ClearCase view in order to benefit from the history feature for that common config spec content.
You can see a full debate in this thread:
However, I have encountered situations where a version controlled
include file was necessary because it referred to plenty of elements
from a legacy code which users had to use to continue their work on some
of the new code. It was pain and we had to live with it.
Just like with any other 'process', this too needs some 'education' to
the users.
I found "Suspend Change-set" in RTC to be very useful, and since we're working with ClearCase as well (dozens of users) I'm wondering if that feature is also available in ClearCase as well.
If not - could it be generated by script/trigger/hook ?
We use UCM, and I'd like to explain my question:
if I have to deliver and I want to skip delivering one activity, I can decide not to deliver it (if no dependencies...) , so my question is regarding working on my current stream: Is that possible to "suspend" an activity from my current stream ?
Thanks in advance
Simply put, not easily.
RTC is basically ClearCase rewritten from scratch, and the "suspend" mode (also called stashed or shelve) takes advantage of the notion of applying a changeset (to any state of a repository)
The UCM changeset are a list of versions of files. Each version is tied to its predecessor, and you cannot easily remove it (unless you do some negative or subtractive merges), and then re-apply them later.
That being said, Reuven just contacted me this morning, because he had files in checked out in a snapshot view on a Stream which he wants to rebase (similar issue to your deliver problem).
A possible way to do that is to create another view (dynamic one), which you can use for your rebase, and then go back to your snapshot view and update it: it will detect the updated config spec (following the rebase) and will not erase any of your currently checked out files.
On the checkin, those files will be merged with the updated version.
One of the shops I'm working at relies on dynamic views in ClearCase. The established norm has been to create a new view for each project effort. Over time I've found that I've only needed to have one or two views concurrently active. I've taken to "reusing" a view by changing the config spec (subsequent to check-in, label, release, etc.). So far, it has worked out. Is there any long-term problem with doing that? If not, is there anyway I can re-name the view (change the view tag) to better reflect what the purpose of the view is?
For base ClearCase dynamic views, the only side-effect you can have when recycling a config spec are private files:
Those are store within the dynamic view storage, and not always removed when the config spec is reset.
You also need to make sure no files were left checked-out: they also are stored in the view storage, and once the config spec has changed, they may not be visible/reachable any more (but you should still be able to unco them through the 'find co' GUI).
You cannot rename (change the tag) of a view (dynamic or snapshot)
And, just to be complete, you cannot recycle the config spec of an UCM dynamic view (which reference a stream).
You can try to change the foundation baselines of said stream, but again, that is not always possible.
I vote for scrapping old views and creating views afresh. Besides all teh great inputs from VonC, from the disk space point of view, old views tend to get bulky over time and you soon you wont be a favorite with your sysadmins :-)
From my experience there is no log term affect for using only 2 dynamic views instead of one for each "project". If you don't need the views active concurrently its a good method, thats the beauty if dynamic views they can be updated very fast and very frequently.
For the renaming part, why rename? make a similar new dynamic view (or two) and give it a new name (view tag).