Search code examples
clearcasecleartoolclearcase-ucm

How to find new undelivered files for a given UCM "stream"


We use UCM for development. We create streams under streams, like this

child_streams

Question is how to find new files in a given stream.

In the example "feat1" would have new files relative to its parent lis1 (lis=local integration stream). The new files could be from "feat1" or its child streams like "developer1". How could I identify new files in lis1?

One option is to create dynamic views on a stream (say feat1) and its parent stream(lis1) and take diff and figure out files new in the child stream.

Another option is to use cleartool deliver -preview and get list of versions and then somehow (I do not know it yet) figure out the list of files.
The problem is the child stream is not necessarily rebased to its parent, and we enforce a "rebase to latest baseline before delivery" rule.

I hope there is a better and correct way :)


Solution

  • I don't think a cleartool deliver -preview (like its non-UCM equivalent cleartool findmerge -preview) would display the full list of modified/new files.

    For new files, it would only display the directories that need merges (in order to reference or un-reference the files added/removed during that merge).

    One way (without using an external diff tool) would be a cleartool find request in order to find any file:

    • with versions in a 'developer1' branch
    • without any versions in a 'lis' branch

    Something like (not tested):

    cleartool find . -type f -version "brtype(developper1) && !brtype(lis)" -print
    

    In the OP Jayan's case:

    cleartool find . -type f -element "brtype(developper1) && !brtype(lis)" -print
    

    Will list only the needed elements (ie files, and not all the versions of those files)