【发布时间】:2016-04-10 06:13:24
【问题描述】:
我对如何为目录创建补丁做了一些研究。例如, How to create a patch for a whole directory to update it?
但第一步是要求您创建一个包含所有更改的单独目录。
但是,由于我在 ClearCase 下进行了更改,我觉得应该有更好的方法来做到这一点。另外,创建一个单独的新目录可能会占用大量存储空间。
有什么建议吗?
【问题讨论】:
我对如何为目录创建补丁做了一些研究。例如, How to create a patch for a whole directory to update it?
但第一步是要求您创建一个包含所有更改的单独目录。
但是,由于我在 ClearCase 下进行了更改,我觉得应该有更好的方法来做到这一点。另外,创建一个单独的新目录可能会占用大量存储空间。
有什么建议吗?
【问题讨论】:
如果您想从当前正在进行的工作(当前文件夹中检出的文件)制作补丁,您可以使用cleartool lsco(或cleartool ls)结合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
-diff_format选项导致以 UNIX 和 Linuxdiff实用程序的样式报告标头和差异。
您可以将输出重定向到一个文件以获取您的补丁。
将-recurse 添加到cleartool ls 或cleartool 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`'
【讨论】:
cleartool ls 而不是lsco。我已经相应地编辑了答案。
-recurse 选项。