如何在 ClearCase 中为目录创建补丁?

How to create a patch for a directory in ClearCase?

我研究了如何为目录创建补丁。例如, How to create a patch for a whole directory to update it?

但第一步是要求您创建一个包含所有更改的单独目录。
但是,由于我在 ClearCase 下进行了更改,所以我觉得应该有更好的方法来做到这一点。另外,创建一个单独的新目录会占用大量存储空间space。

有什么建议吗?

如果你想从当前正在进行的工作(当前文件夹中检出的文件)制作补丁,你可以使用cleartool lsco (or cleartool ls) combined with cleartool diff:

 cd /path/to/my/view/myfolder
 cleartool lsco -s -cview | xargs cleartool diff -pred -diff_format
# for all files:
 cleartool ls -s -view-only | xargs cleartool diff -pred -diff_format

The -diff_format option causes both the headers and differences to be reported in the style of the UNIX and Linux diff utility.

您可以将输出重定向到一个文件以获取您的补丁。

-recurse 添加到 cleartool lscleartool lsco,以获取子文件夹中的文件。

如果你知道你所在的分支,你可以使用与“-pred”不同的版本进行比较:

| xargs -0 -i sh -c '`cleartool diff {} {}@@/main/yourBranch/0`'

"xargs : using same argument in multiple commands" 提出另一种语法:

| xargs -n1 -I_afile -- sh -c '`cleartool diff _afile _afile@@/main/yourBranch/0`'