【问题标题】:How to use perform a mkelem on view private files using the ClearCase Menu Editor如何使用 ClearCase 菜单编辑器对查看私有文件执行 mkelem
【发布时间】:2016-12-24 10:12:43
【问题描述】:

我正在使用 Windows 动态视图。
我正在尝试使用 ClearCase 菜单编辑器创建一个工具快捷方式,以便在我视图中的所有私有文件上自动执行“mkelem”。

我知道“cleartool lsprivate -other”可以获取所有私有文件的完整路径列表,但我不知道如何将该结果列表输入到“mkelem”命令中。
我也知道“find”命令,最后您可以指定“-exec”以使其执行要在结果列表上执行的附加操作,但我再次不知道是什么提供给“find”的参数,以便它只查找查看私有文件。

谁能帮我解决这个问题?

【问题讨论】:

    标签: find clearcase checkin


    【解决方案1】:

    我会考虑/测试的另一种方法是我在“How can I use ClearCase to “add to source control …” recursively?”中提到的一种方法,使用 clearfsimport。

    我怀疑 clearfs 将视图文件夹导入视图本身应该会自动添加私有文件,同时保持现有文件不变。但是,正如评论的那样,您需要导入一个新的动态视图(具有相同的配置规范)才能工作。

    cleartool find 的问题在于它会找到版本化的元素。
    它可以使用%CLEARCASE_PN% 或%CLEARCASE_XPN% 作为其exec 子句中的参数:引用已经版本化 元素的路径名或扩展路径名。

    【讨论】:

    • 感谢 VonC 的反馈。我确实考虑过使用 clearfsimport,但是新的“查看私有”文件将已经在视图中的相应文件夹下,并且 clearfsimport 要求它们不要已经驻留在视图中的文件目标中。有没有我可以提供给 cleartool find 的论点来只显示未版本化的文件(查看私有文件)?我对该命令进行了深入研究,但似乎无法找出所有选项来给我这个结果列表。
    • @Eric 是的,您需要 clearfsimport 到具有相同配置规范的新动态视图中。至于列出私有文件,我主要知道 cleartool lsprivate。我会尝试将其输出重定向到文本文件,对其进行处理以添加 cleartool mkelem 命令,并将其作为脚本文件运行。
    • '@VonC 感谢您的建议。我会继续朝着这个目标努力。
    【解决方案2】:

    嗯,这很复杂,因为您需要在创建元素之前检查父目录。

    你有没有试过类似这样的命令:

    for /f "delims==" %x ('cleartool lsprivate -other') do @cleartool co -nc "%~px" & cleartool mkelem -mkpath -ci -c "autoadd" "%x" & cleartool ci -nc "%~px"
    

    -mkpath 在创建元素的同时生成元素路径的任何缺失部分。这应该 - 通过适当的按摩使其在“cmd / c”或批处理作业中工作,做基础......当然,这也为每个新元素提供了 1 个新版本的父目录。

    如果您不反对 Perl,您可以通过获取该列表、创建任何需要的目录以及它们创建元素来扩展它。

    【讨论】:

    • 是的,我假设是 Windows。如果您需要 unix,请查看“xargs”
    • 布赖恩,这是一个很好的建议。实际上,我注意到创建以下文件元素时会自动创建新目录。这是一个很好的副作用,因此无需在 ClearCase 中手动创建新文件夹。谢谢推荐
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    相关资源
    最近更新 更多