如何提交任意目录树

时间:2017-02-21 15:32:27

标签: clearcase

我正在寻找一个允许我将任意目录树提交给ClearCase的进程。树可能包含常规文件,目录和符号链接(到文件或目录)。

我们正在专门处理动态视图,并且在这种情况下,我已经由较旧的团队成员给出了以下过程(假设我需要向ClearCase提交目录foo的整个结构):< / p>

  1. 切换到foo出现的目录并查看:

    ct checkout。

  2. foo中的所有文件注册为ClearCase对象:

    ct mkelem -mkpath $(找foo -type f)

  3. 签入新创建的ClearCase对象:

    ct ci $(ct lscheckcout -me -cvi -recu -sho foo)

  4. 提交

    ct ci。

  5. 上述内容似乎适用于常规文件,但不存在符号链接时。

    E.g。如果我做以下事情:

    mkdir foo && cd foo
    touch a && ln -s a a2 && cd ..
    

    ...然后按照上述过程(在步骤2中更改find咒语以使用find -type f -o -type l),步骤#1和#2成功执行:

    $ ct co .
    Checkout comments for ".":
    .
    Checked out "." from version "/main/dbdev_br/2".
    $ ct mkelem -mkpath $(find foo -type f  -o -type l)
    Creating parent directory element "foo".
    Created directory element "foo".
    Checking out parent directory "foo".
    Created branch "dbdev_br" from "foo" version "/main/0".
    Creation comments for "foo/a":
    .
    Created element "foo/a" (type "text_file").
    Created branch "dbdev_br" from "foo/a" version "/main/0".
    Checked out "foo/a" from version "/main/dbdev_br/0".
    Creation comments for "foo/a2":
    .
    Created element "foo/a2" (type "text_file").
    Created branch "dbdev_br" from "foo/a2" version "/main/0".
    Checked out "foo/a2" from version "/main/dbdev_br/0".
    

    ...但是当我尝试执行第3步时,我得到:

    Checked in "foo/a" version "/main/dbdev_br/1".
    Private version of "foo/a2" saved in "foo/a2.keep".
    cleartool: Warning: Operation "view_change_oid" failed ("foo/a2"): Read-only file system.
    cleartool: Warning: VOB updated, but view update of uncheckout of "foo/a2" failed: error detected by ClearCase subsystem.
    Checked in "foo/a2" version "/main/dbdev_br/1".
    

    在ClearCase中提交任意目录树(使用常规文件,目录和符号链接)的过程是什么?我正在寻找可以编写脚本的东西,这样我就不必手动执行,逐个文件,逐个目录等。脚本也允许我在整个过程中应用相同的提交消息。

    在git中,它将如此简单:

    git add foo
    git commit -m 'foo added'
    

1 个答案:

答案 0 :(得分:1)

  

我应该使用什么过程在ClearCase中提交任意目录树(使用常规文件,目录和符号链接)?

首先尝试在#34; clearfsimport&#34;中详细说明 How can I quickly checkin a large number of files in clearcase 。 这是从任何文件夹(该文件夹可以在另一个视图或简单的OS常规文件夹中)添加大量文件到ClearCase视图(快照或动态,UCM或不是)的官方命令

目的地文件夹不再checkout,不再需要mkelemclearfsimport处理此问题。

您可以选择使用-follow选项:

  

处理UNIX或Linux符号链接指向的对象,而不是将链接本身导入VOB。