【发布时间】:2014-09-15 13:36:08
【问题描述】:
我有一个文件,我想使用 cleartool 添加到 Linux 上的源控制。
我已经为此遵循了 IBM 文档,我已经尝试过:
cleartool mkelem testScript.sh
我收到一个错误:无法修改目录“。”因为它没有被检出。 我也想知道如何签出/签入文件或目录以及设置活动。
【问题讨论】:
标签: linux clearcase clearcase-ucm cleartool
我有一个文件,我想使用 cleartool 添加到 Linux 上的源控制。
我已经为此遵循了 IBM 文档,我已经尝试过:
cleartool mkelem testScript.sh
我收到一个错误:无法修改目录“。”因为它没有被检出。 我也想知道如何签出/签入文件或目录以及设置活动。
【问题讨论】:
标签: linux clearcase clearcase-ucm cleartool
您需要先签出父文件夹。
cd /path/to/file/
cleartool mkact newfile
cleartool checkout -c "add file" .
cleartool mkelem testScript.sh
cleartool checkin -nc
如果您在 UCM 视图中,cleartool mkact 将起作用。
它将创建并设置一个新活动,该活动将记录您将修改的文件和文件夹。
这里,新活动newFile会记录新版本的父文件夹,以及文件的version 0和1。
【讨论】:
cleartool lslock activity:yourAct@/vobs/yourPVob
您应该为..单独的问题...创建单独的问题...
回到原始文件 - 正如 VonC 指出的那样,它不起作用的原因是,您还没有签出文件的父文件。请记住,当您运行“cleartool mkelem”时,您将通过向您正在创建的元素添加一个新的“指针”来修改父目录(在本例中为.)的内容。与 clearcase 中的其他所有内容一样,当您要修改元素的内容时,您必须先检查它。
ClearCase 最大的优势之一(也是最难以理解的)是“元素”的概念,IMO。 “一切”与元素的行为相似。对“元素”(文件或目录)进行任何更改意味着您必须先检查它才能进行更改。
对于文件,这很容易掌握 - 您只是在编辑文件中的行。对于目录,它几乎同样简单 - 您可以将目录视为指向数据 blob 的指针列表。我们将 blob 的名称命名为便于记忆的名称(如 foo.java 或 myapplication.cc 或 README.md)。但我们也可以通过重命名文件来更改指针的名称(即使它指向同一个数据块)。我们可以使用“rmname”删除指向blob的指针,而不会影响blob本身。这基本上就是“rmname”的作用。
在 ClearCases 的例子中,mkelem 命令有点特殊 - 它创建初始数据块,并在当前目录中添加指向该数据块的指针(一次做两件事)。
【讨论】: