使用Clearcase进行递归检入

7

我想将一个目录及其所有子目录检入到Clear Case中。是否有特定的命令可以实现? 目前,我需要进入每个目录并手动检入每个文件。

3个回答

10

我建议阅读这个问题

现在的问题是需要检入所有已更改的文件。
这很麻烦,因为通常并不是所有文件都被更改了,而且当尝试检入完全相同的文件时,ClearCase将触发错误消息。这意味着你需要两个命令:

ct lsco -r -cvi -fmt "ci -nc \"%n\"\n" | ct
ct lsco -r -cvi -fmt "unco -rm %n\n" | ct

(在Windows上使用'doskey ct=cleartool $*'命令设置别名)


但如果你的意思是:"首次将文件输入源代码控制" 或 "更新可能已更改的大量文件的现有版本目录" ,我建议创建一个动态视图,并在其中使用 clearfsimport 命令导入快照树(包含新文件)。

请参见此问题此问题

clearfsimport 脚本更适合导入相同一组文件,它会自动执行以下操作:

  • 添加新文件,
  • 对以前导入但在源文件集中被修改的现有文件进行新版本控制,
  • 删除不再存在于源文件集中的已导入文件,
  • 清晰记录导入过程中进行的所有操作。

:

 clearfsimport -preview -rec -nset c:\sourceDir\* m:\MyView\MyVob\MyDestinationDirectory

我一直在谷歌搜索这个答案,但每次都忘记更改转义字符。在Linux中,命令是[ct lsco -r -cvi -fmt "ci -nc "%n"\n" | ct]和[ct lsco -r -cvi -fmt "unco -rm "%n"\n" | ct]。 - Jordan Bentley
@JordanBentley 你确定你不能在双引号内部转义双引号吗?如果 ciunco 命令在单引号内部,我可以理解(在这种情况下,双引号不会被 shell 立即解释)。 - VonC
啊,我应该提到我正在使用c-shell,它对双引号的处理方式不同。 - Jordan Bentley

1

你在 clearfsimport 命令中使用了 -recurse 选项吗?例如:clearfsimport -recurse source_dir .

这应该会有所帮助。如果你正在使用 Windows 客户端,请右键点击父文件夹,选择“搜索”,将文件名字段留空,点击“搜索”,在结果窗口中选择所有文件(ctrl-A),右键单击它们,然后选择 ClearCase -> 添加到源代码控制。


1

如果你使用的是Windows系统,可以尝试以下方法:

for /f "usebackq" %i in (`cleartool lsco -cview -me -r -s`) do cleartool ci -nc %i

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接