繁体   English   中英

带专用分支的Clearcase配置规范

[英]Clearcase Config Spec with Private Branch

我的工作结构有些复杂(至少对我而言)。 它是这样的:

Main
 |
 1
 |
 2
 | \
 3   \
     Ver2
      |
      1
      | \
      2   \ 
      |   ProjectA
      3      |
             1

主分支有2个分支。 “ Ver2”(每个人对下一个版本的更改)和“ ProjectA”(这是我的工作)。

我的问题是:有没有一种方法可以创建一个配置规范,它知道已经合并了什么,所以我得到了:

  1. ProjectA中尚未合并的所有内容
  2. 如果ProjectA的LATEST已合并到Ver2,则从Ver2分支获取LATEST
  3. 如果没有ProjectA分支,请从Ver2获取
  4. 如果没有Ver2,请从MAIN获取

例如,在上述情况下,如果我在Ver2分支中将版本1从ProjectA合并到版本2,那么我想在Ver2上看到版本3。 但是,如果尚未合并这些文件,则我希望使用ProjectA的版本1。

我不认为您可以那样做。 但是,您可以获得的是ProjectA的最新信息。 Ver2中任何未在ProjectA中更改的内容; 以及MAIN中未在Ver2或ProjectA中更改的任何内容。 其余的技巧是确保已从Ver2或MAIN合并了所有必要的东西。 为此,您可以使用具有针对Ver2的配置规范的参考视图(除非Ver2保持最新,否则您不需要MAIN的配置视图),然后在ProjectA视图中执行以下操作:

cleartool findmerge . -fta view-tag-for-ver2 -merge

-fta表示“来自标记”。 当然,还有许多其他选择。

这样可以确保ProjectA关于Ver2完全是最新的。

您必须记住为什么要定义分支
隔离开发工作。

因此,为了更好地管理您的复杂配置规范,您应该确切地知道“ main”分支,v2分支和Project A分支扮演什么角色。

例如,由于两个不同的原因,V2和项目A应该存在。

如果有Project A来开发该项目的当前版本,则应该合并到V2分支,以允许将一些当前的开发改造为V2分支。

通过这种推理,您不希望在同一视图中看到“两者”:它们代表两组不同的文件,V2可能包含具有非常不同的API的大型重构。

但是,如果您坚持这样的配置,则可以使用移动“ MERGE_FROM_PA”标签的能力:每次将一些文件从Project A合并到V2分支时,都需要为每个合并的文件/目录再次设置“ MERGE_FROM_PA”标签,将该标签从以前的V2版本移动到最新版本。

配置规范可以是:

element * MERGE_FROM_PA
element * .../ProjectA/LATEST
element * .../V2/LATEST
element * /main/LATEST

但是话又说回来,那没有多大意义。

您需要定义要模型化,然后定义一个不同的发展努力协调一致的工作流程 ,让您的配置规范只注重那些环境之一

为什么不? 如果分支已经合并到某个地方,则不使用它对我来说很有意义。

这是配置规范:

element * {version(.../ProjectA/LATEST)&&!hltype(Merge,->)}
element * {version(.../Ver2/LATEST)&&!hltype(Merge,->)}
element * /main/LATEST

只要您在构建之前将所有工作流程标记为标签,是什么使该工作流程变得不一致?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM