我有为子分支创建的视图。对于给定的子分支名称,是否有可能找出父分支和从中创建子分支的基础标签?如何在Clearcase中查找分支的父标签
回答
您的子分支将基于哪个分支,标签或版本由config_spec决定。尝试运行cleartool catcs -tag <your_view_name> | grep -2 <your_child_branch_name>
,这应该会在前后给出几行来给出上下文。 config_spec的外观如何变化很大[1],所以我不能说如果只是羡慕就足够了。
如果你想学习和理解你可能想检查整个config_spec。 在您的视图中,您可以运行cleartool ls [file(s)]
,Rule: ...
部分将回顾所应用的config_spec中的内容。
[1] 当我12年前开始使用clearcase时,我们只是手工编辑了几行代码,今天它是由一个工具生成的,有数百(或数千?)行。
12年前?当时是什么? ClearCase3,ClearCase4?仍然是Atria产品。无论如何+1指向配置规范。 – VonC 2010-02-28 21:21:09
@VonC:我们从1994年开始使用CC,我不确定版本号,但不是很大。 – 2010-02-28 21:32:23
@Jonathan:1994年... CASEVision™/ ClearCase的(http://docs.sgi.com/library/tpl/cgi-bin/browse.cgi?coll=0530&db=bks&cmd=toc&pth=/SGI_Admin/ClrC_AG):可能ClearCase的2.0(http://www.encyclopedia.com/doc/1G1-17625730.html) – VonC 2010-02-28 21:48:18
由于这些概念不一定适用,所以对于您的问题没有简单的答案。这意味着答案也必须深入研究背景。
配置规范是了解事物当前如何工作的关键(catcs)。查看实际的文件版本名称和版本历史记录(描述,历史记录)是了解在创建分支或版本时事情如何工作的其他关键。
分支独立于其上的文件而存在。对于不同的文件,相同的分支名称可能出现在分支结构的不同位置。分支不一定是从文件的标签版本创建的(尽管它有时是)。同样,标签的存在与标签文件无关。
例如,请考虑我应该在此刻被审查文件(伪装名称,但代表):
- xyzscan.c @@ /主/ TEMP.newfeat.it1/TEMP。 newfeat.it2/TEMP.newfeat.it3/3
通过钻研历史,我可以看到TEMP.newfeat.it1分支从版本xyzscan.c @@ /主/ 89创建的;这不是一个标签版本,因为之前的修订包使用了xyzscan.c @@/main/88(标签为product-6.54.03等;该文件在多个版本中未更改,更不用说修复包)。自上一个标签版本以来,/ 89版本是一个(次要)错误修复。
这个特殊的新功能有3次迭代。目前的配置规格看起来有点像:
element * CHECKEDOUT
element * .../TEMP.newfeat.it3/LATEST
mkbranch TEMP.newfeat.it3 -override
element * .../TEMP.newfeat.it2/LATEST
mkbranch TEMP.newfeat.it2 -override # Redundant
element * .../TEMP.newfeat.it1/LATEST
mkbranch TEMP.newfeat.it1 -override # Redundant
element /vobs/product/... /main/LATEST
include /atria_release/cspecs/otherprod/2.34/otherprod-2.34.05
element * /main/LATEST
第二和第三个“mkbranch”线现在是多余的,但是是相关的,当他们的分支是最新的。
上有TEMP没有标签*根据我们的计划分支(和普通的工程师不允许创建不启动分支“TEMP”,这是由触发脚本执行)。
在每次迭代中都修改了xyzscan.c文件。使用 '描述',我可以看到:
xyzscan.c @@ /主/ TEMP.newfeat.it1/TEMP.newfeat.it2/TEMP.newfeat。IT3/0从 xyzscan.c @@ /主/ TEMP.newfeat.it1/TEMP.newfeat.it2/2
xyzscan.c @@ /主/ TEMP.newfeat.it1/TEMP.newfeat支.it2/0从xyzscan.c @@/main/TEMP.newfeat.it1/7分支出来。
但是,如果我看另一个文件:
- xyzread.c @@ /主// TEMP.newfeat.it3/1
我可以看到,这是不修改直到迭代3 - 此文件没有分支TEMP.newfeat.it1或TEMP.newfeat.it2。而且,这不是问题。
问题问:
我有一个子分支创建的视图。对于给定的子分支名称,是否有可能找出父分支和子分支创建的基标签。
给定一个文件在视图中,您可以运行'cleartool describe',可能使用'-s'(短)选项来获取其版本号。在我的例子,这可能是:
- xyzscan.c @@ /主/ TEMP.newfeat.it1/TEMP.newfeat.it2/TEMP.newfeat.it3/3
要找出您需要查看分支上的'/ 0'版本,它的内容与其分支的分支TEMP.newfeat.it2上的版本完全相同。然后,您需要查看“/ 0”版本的完整描述,以查看前一版本是什么('-s'现在没有帮助)。这就是我如何发现,以前的版本是:
- xyzscan.c @@ /主/ TEMP.newfeat.it1/TEMP.newfeat.it2/2
重复倒退。您可以看到适用于TEMP.newfeat.it3从'describe'的(完整)输出中分支的版本的标签。但是,自分支创建以来,这些标签可能已应用。
通常(虽然不是这个例子中),在TEMP.newfeat.it3分支版本之后,分支上可能会有更新的版本,例如TEMP.newfeat.it2。这总是会导致问题:TEMP.newfeat.it2分支上的额外更改是否需要合并到TEMP.newfeat.it3分支 - 幸运的是,ClearCase在合并和合并跟踪方面相当不错。
+1。一如既往的完整和详细。版本0在这里是关键。它是新分支的“声明”版本,它与父分支的版本相同。 – VonC 2010-02-28 21:22:44
根据配置规范的指定,可以从该视图中的任何版本创建分支。
起点可以是标签,也可以是其他标准的版本参考(日期,来自另一个分支的最新信息等)
总之:你不能; ClearCase是基于文件的,而不是基于存储库的。
这意味着您可以决定从不同条件开始分支,针对给定视图选择的每个文件。
现在,如果您在视图中已经修改了一个文件(即,它具有新的分支),你可以:
cleartool descr -l myFile
这应该给你的文件的扩展路径:
[email protected]@/main/parentBranch/myBranch
当前新的前一个分支的名字是你在找什么对于。
您可以确定对于给定的文件。
- 1. 在ClearCase中分支分支?
- 2. ClearCase:我如何知道分支的父分支?
- 3. 从clearcase标签合并到git分支
- 4. 查找ClearCase分支类型的子集
- 5. 在ClearCase中查找签出版本的父代
- 6. 如何查找clearcase视图的分支名称
- 7. 如何在git中找到父分支?
- 8. 如何最好地在Clearcase中分支?
- 9. 查找在特定ClearCase分支中修改的所有文件?
- 10. ClearCase - 查找在某个分支上查看的所有文件
- 11. clearcase在父分支和子分支之间创建差异
- 12. ClearCase标签文件的父文件夹
- 13. Clearcase在任何分支上查找特定文件
- 14. 如何在所有clearcase分支中查找用户创建的文件?
- 15. 查找父标签XSLT
- 16. 如何在Javascript中查找h1标签数组的父ID?
- 17. Clearcase当父分支有许多子分支时如何获取最新文件?
- 18. 如何在git中找到空分支和标签
- 19. 根据CVS中的分支名称查找前分支标签 - 有可能吗?
- 20. ClearCase - 将父级和子级分支合并为主(分支机构分支)
- 21. 在任何分支或标签中找不到有效的composer.json
- 22. 如何使分支来自/ team标签中的分支Repo Directory
- 23. 如何查看分支git的父母
- 24. 如何在iframe中查找span标签?
- 25. 如何在复合中查找标签
- 26. 如何确定我在git中签出的分支/标签?
- 27. 如何检查标签所在的分支?
- 28. ClearCase:如何找到没有特定标签的元素
- 29. Clearcase查看和分支解释
- 30. 如何使用ClearCase cleartool查找所有签出的文件?
ClearCase中没有“父标签”或“子分支”的概念。如果你想让某人花时间在一个很好的答案上,你至少必须提供一个确切的问题陈述。我不会另外列举每种可能的解释和答案。 – Garen 2012-05-16 23:43:34