【问题标题】:Create Directory Tree and add file in clearcase创建目录树并在 clearcase 中添加文件
【发布时间】:2014-07-22 19:12:38
【问题描述】:

我想添加一个文件到 clearcase 源代码管理。为此,我将命令用作

clearfsimport -preview -rec -nset D:\TestCreated\folder1\folder2\folder3\MyFile.java m:\MyView\MyVob\

现在,我想要的是 - 它应该在 MyVob 中创建文件夹(如果不存在) - folder1、folder2、folder3,然后将文件 MyFile.java 复制到 folder3。

我不希望将所有内容都复制到 clearcase 中,而只是将特定文件 MyFile.java 作为 folder1 , folder2 也可以包含其他文件。我是否需要每次都做 mkdir 来分别制作每个文件夹,然后再做 mkelem 文件或 是否有更简单的解决方案 使用任何简单的命令或脚本?

【问题讨论】:

    标签: unix clearcase


    【解决方案1】:

    如果您需要在脚本中执行此操作,那么您的脚本将不得不递归地为文件 mkelem -mkp。
    (如“To add elements (files and directories) to source control from the command line”和cleartool mkelem中所述)

    -mkp/ath
    

    此选项允许在其私有视图父目录中创建元素。
    但是,该命令必须在版本控制的父目录中运行

    例如,如果您有一个私有视图文件foo.c,它是私有视图父目录dir1,并且dir1 的版本化父目录dir2,您必须在@987654331 中运行mkelem -mkpath @:

    cleartool mkelem -nc -mkpath dir1 dir1\foo.c
    

    默认情况下,元素的父目录(包括那些已经是元素的)以及元素本身都会被检出。

    查看more complete example in this ctadd script

    在你的情况下:

    cd m:\MyView\MyVob
    cleartool mkelem -mkpath folder1\folder2\folder3 folder1\folder2\folder3\MyFile.java
    

    一个更简单(非脚本)的解决方案是:

    • folder1\folder2\folder3\MyFile.java复制到m:\MyView\MyVob\
      (如果文件夹还不存在,windows command md 将一步创建中间文件夹)

    • 打开 ClearCase Explorer 并将该文件添加到源代码管理:它也会将任何缺少的父文件夹添加到源代码管理(或者如果它们已经存在,则会更新它们的内容)。

    请参阅“将文件和目录添加到现有目录树 (Windows)”:

    右键单击选定对象之一,然后单击添加到源代码管理。

    选择离目录树根最远的项目:任何给定文件或目录的“添加到源代码管理”命令还会添加任何尚未成为元素的父目录(直到 VOB 根目录)

    【讨论】:

    • 正如你提到的,我使用 md 命令创建文件夹,然后将我的文件复制到那里。现在,当我使用 mkelem /MyVOB/folder1/folder2/folder3/MyFile.txt 时,它会抛出 ERROR --- Not a vob object: ../MyVOB/folder1/folder2/folder3/ 我有使用脚本而不是通过 UI 来做到这一点
    • @br001 你为什么使用cleartool mkelem,而不是cleartool mkelem -mkpath folder1\folder2\folder3 folder1\folder2\folder3\MyFile.java,来自m:\MyView\MyVob 文件夹,正如我在答案中解释的那样?为什么不使用-mkpath 选项?
    • @br001 我已经编辑了答案,以清楚地显示唯一 mkelem 命令会将您的文件连同其所有父目录添加到源代码管理中。跨度>
    • 我尝试了你提到的命令,现在我得到了这个(我认为它期望目录已经存在) - cleartool:错误:无法确定“demofolder1\demofolder2\demofolder3”的视图:否这样的文件或目录。 cleartool:错误:无法确定“demofolder1\demofolder2\demofolder3\MyDemoTest33.java”的视图:没有这样的文件或目录。
    • 我提到“但是,该命令必须在受版本控制的父目录中运行。”:确保从您拥有 demofolder1\demofolder2\demofolder3 的版本控制文件夹中运行命令
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    相关资源
    最近更新 更多