在UNIX下使用cleartool,如果我在快照视图中有一个未经修改的文件(例如仍然签入,未签出,未被劫持), 我可以用这个成功地获得它的前身版本:
$ cleartool describe -predecessor -short file.c
/main/ABC_int/ABC_STAGING/user_ABC_STAGING_dev1/9
在这种情况下没问题。
但是,如果文件碰巧被劫持(这种情况经常以我的工作方式发生),那么cleartool描述拒绝给我它的前身版本:
a)以下两行模拟劫持:
$ chmod 666 file.c
$ touch file.c
b)然后在那一点,如果我在同一个文件上再次尝试相同的命令行:
$ cleartool describe -predecessor -short file.c
cleartool: Error: -predecessor invalid for non file system objects: "file.c".
如何在文件被劫持时获取文件的变更集前驱版本路径?
有没有不同的方法来做到这一点:
"cp file.c file.c.backup"
),"cleartool update -overwrite <file>"
取消劫持,"cleartool describe -predecessor -short file.c"
)上的前任,"chmod 666 file.c"
),mv file.c.backup file.c
&#34;)?谢谢!
答案 0 :(得分:0)
一个简单的解决方案是让dynamic view具有与当前快照视图相同的配置规范。
虽然快照视图中的文件状态可能不允许获取其先前版本,但动态视图中引用的文件将相同。
cleartool descr -pred -short /view/yourDynamicView/vobs/AVob/path/to/files.c
您仍然可以在快照视图中正常工作,但您可以依靠动态视图来获取所需的信息。
它有效!
- 使用以下命令创建临时动态视图:
醇>
cleartool mkview -tag <dynview_tagname> -stream <mystream@/myPVOB> -stg -auto
- 获取被劫持文件的前身:
醇>
cleartool describe -predecessor -short /view/<dynview_tagname>/vobs/<path>/file.c
- 使用以下方法销毁临时动态视图:
醇>
cleartool rmview -tag <dynview_tagname>