簡體   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