如果我在本地ClearCase视图中添加/删除/修改了大量文件,我如何确定所有文件都已添加到源代码管理中?
答案 0 :(得分:8)
对于 快照 视图(您称之为“本地视图”?),您的答案是正确的。 在动态视图中,一个简单的
cleartool lsprivate
就足够了。
但这会遗漏被劫持的文件(已经添加到源代码管理中,但可能在没有ClearCase知道的情况下进行了修改)
所以我建议用(对于Windows)完成命令:
for /F "usebackq delims= " %i in (`cleartool ls -r -nxn ^| find "hijacked"`) do @echo %i
对于Unix:
cleartool ls -r -nxn | grep hijacked
这也会将文件保留在结帐中(已授予,它们也会添加到源代码管理中,但也应列出,因为它们必须最终提交或取消)。
在快照视图中:
cleartool lscheckout -recur
在动态视图中:
cleartool lsprivate –co
答案 1 :(得分:7)
我对windows使用了类似的dos命令,但是我也将clear工具命令的结果传递给findstr为'忽略'特定模式(使用正则表达式),例如.keep文件,dll,以及我不想添加到源代码的已编译文件和文件夹位置。
从视图的根文件夹运行以下命令。如果您有多个顶级文件夹,那么您需要为每个文件夹运行一次。另外,我认为这仅适用于 SnapShot 视图。
cleartool ls -recurse -view_only | findstr /vi ".dll$ .pdb$ .suo$ .keep$ .unloaded$ \\bin$ \\bin\\ \\debug$ \\debug\\ \\release$ \\release\\ \\obj$ \\obj\\ ^cleartool$" > c:\ItemsNotInSource.txt
答案 2 :(得分:5)
使用本地视图VOB目录中的cleartool ls -view_only -r
。
要以递归方式向源控件添加任何仅在本地视图中的文件,请参阅How can I use ClearCase to “add to source control …” recursively?。