If I have added/removed/modified a large number of files in my local ClearCase view, how can I be certain that all the files have been added to source control?
Use cleartool ls -view_only -r
from the your local view VOB directory.
To add any files recursively to source control that are only in the local view, see How can I use ClearCase to “add to source control …” recursively?.
Your answer is correct, for snapshot views (which you call 'local view' ?)
In a dynamic view, a simple
cleartool lsprivate
would suffice.
But that would leave out hijacked files (which are already added to source control, but may have been modified without ClearCase knowing it)
So I would recommend to complete your command with (for Windows):
for /F "usebackq delims= " %i in (`cleartool ls -r -nxn ^| find "hijacked"`) do @echo %i
For Unix:
cleartool ls -r -nxn | grep hijacked
That would also leave files in checkouts (granted, they also are added to source control, but should be also listed as they must be eventually committed or cancelled).
In Snapshot views:
cleartool lscheckout -recur
In Dynamic views:
cleartool lsprivate –co
I use a similar dos command for windows, but I also pipe the results of the clear tool command to findstr to 'ignore' specific patterns (using regex) such as .keep files, dll's, and compiled files and folder locations that I don't want to add to source.
Run the following command from the root folder of your view. If you have multiple top level folders then you'll need to run it once for each folder. Also, I believe this only works for SnapShot views.
cleartool ls -recurse -view_only | findstr /vi ".dll$ .pdb$ .suo$ .keep$ .unloaded$ \\bin$ \\bin\\ \\debug$ \\debug\\ \\release$ \\release\\ \\obj$ \\obj\\ ^cleartool$" > c:\ItemsNotInSource.txt