我正在寻找一个允许我将任意目录树提交给ClearCase的进程。树可能包含常规文件,目录和符号链接(到文件或目录)。
我们正在专门处理动态视图,并且在这种情况下,我已经由较旧的团队成员给出了以下过程(假设我需要向ClearCase提交目录foo
的整个结构):< / p>
切换到foo
出现的目录并查看:
ct checkout。
将foo
中的所有文件注册为ClearCase对象:
ct mkelem -mkpath $(找foo -type f)
签入新创建的ClearCase对象:
ct ci $(ct lscheckcout -me -cvi -recu -sho foo)
提交
ct ci。
上述内容似乎适用于常规文件,但不存在符号链接时。
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'
答案 0 :(得分:1)
我应该使用什么过程在ClearCase中提交任意目录树(使用常规文件,目录和符号链接)?
首先尝试在#34; clearfsimport
&#34;中详细说明 How can I quickly checkin a large number of files in clearcase 。
这是从任何文件夹(该文件夹可以在另一个视图或简单的OS常规文件夹中)添加大量文件到ClearCase视图(快照或动态,UCM或不是)的官方命令
目的地文件夹不再checkout
,不再需要mkelem
:clearfsimport
处理此问题。
您可以选择使用-follow
选项:
处理UNIX或Linux符号链接指向的对象,而不是将链接本身导入VOB。