关于 diff:如何在 ClearCase 中为目录创建补丁?

How to create a patch for a directory in ClearCase?

我对如何为目录创建补丁做了一些研究。例如,
如何为整个目录创建补丁来更新它?

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

有什么建议吗?


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

1
2
3
4
 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" 的版本做一个 diff:

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

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

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