2010-11-22 67 views
2


我對ClearCase知之甚少,想了解更多信息。
我在/main下創建了一個分支BR_PHASE2
我用以下命令將文件簽入分支:ClearCase使用configspec分支

element * CHECKEDOUT 
element * .../BR_PHASE2/LATEST 
element * /main/LBL_MS_PHASE2_04-NOV-2010 -mkbranch BR_PHASE2 

現在的問題是如何從分支訪問文件?
我不能連開VOB,如果我切換到這個配置規格:

element * CHECKEDOUT 
element * /main/BR_PHASE2/LATEST 

我寫的配置規範錯誤?當我嘗試設置如上配置規範時出現的錯誤:
警告:新的配置規範會使當前工作目錄不可見。

實際訪問我創建的分支的步驟是什麼?

回答

0

您的第一個配置規範似乎沒問題。實際上,您試圖從標籤'LBL_MS_PHASE2_04-NOV-2010'更改的所有文件都將被分支到BR_PHASE2。試試看結果,看版本樹。

此外,第二個配置規範告訴查看所有屬於該分支的文件,但如果您沒有檢出任何分支,那麼您什麼也看不到。

嘗試以下操作:

element * CHECKEDOUT 
element * /main/LBL_MS_PHASE2_04-NOV-2010 
element * /main/BR_PHASE2/LATEST 

,讓你有選擇的標籤和分支的文件的目錄結構。

+0

我檢出了標籤'LBL_MS_PHASE2_04-NOV-2010'中的一些文件到分支BR_PHASE2。我得到了確認文件已成功檢入分支。但是當我嘗試將配置設置爲: element * CHECKEDout element */main/BR_PHASE2/LATEST,我收到錯誤。此外,我無法打開我的VOB和任何文件夾結構在新創建的分支下。它說當我嘗試訪問它時找不到文件夾或目錄,但'ls'列出了目錄結構,並且所有文件夾似乎都存在。任何解決這個問題的方法? – Madan 2010-11-22 14:10:52

+0

在我看來,配置規範沒有向你顯示目錄樹,因爲你只是沒有看到你的配置規範。你應該糾正你的最後一個cs,看到更新的答案。 – 2010-11-22 14:22:50

+0

Thnx爲最新的代碼。似乎工作,但問題是我無法理解config規格如何選擇哪個分支來檢出文件,並且既然您已經從BR_PHASE2提供了main和latest的標籤,那麼目前可見的目錄結構是來自main或從分支? – Madan 2010-11-22 15:00:08

4

的問題是:

實際上有什麼目錄:

  • 分支BR_PHASE2一個版本?
  • 標籤爲LBL_MS_PHASE2_04-NOV-2010的版本?

如果你只分支/標記/myVob/myDirectory下的所有文件,然後將目錄/myVob本身不會永遠不會被支/標記。

這意味着以下配置規範將無法選擇任何版本/myVob,使所有的其他規則的任何文件/myVob無用下:
直到ClearCase是能夠在真皮休閒選擇的/myVob一個有效版本,它將無法爲/myVob下的任何文件選擇任何版本。

element * CHECKEDOUT 
element * /main/BR_PHASE2/LATEST 

你應該總是結束您的配置規格與 「配置停止規則」,如:

element * /main/LATEST 

或至少:

element /myVob /main/LATEST 

添加這些的一個在結束您的配置規範,並且該視圖應按預期工作。


ClearCase的配置規範機制的組成爲基礎的一個:更多地瞭解它,請參閱SO回答「Flexible vs static branching (GIT vs Clearcase/Accurev)」。


的OP補充說:

你提到總是結束CS有:element * /main/LATEST

不一定:

如果你想確保只使用右分支/標籤查看/ myVob/myDir下的文件,您可以使用上面提到的:

element /myVob /main/LATEST 

該規則僅適用於/myVob(不屬於/myVob下的任何內容)。
這允許ClearCase通過/myVob(因爲它至少可以爲它選擇一個有效版本)並開始將其他選擇規則應用於子目錄。

但如果我想檢查出僅來自分支BR_PHASE2的文件,不會創建一個錯誤。我在說,當我用/ main/LATEST結束它並簽出並簽入文件時,它會在主分支中更新。我該怎麼辦呢?

這取決於你所使用的配置規格:

element * CHECKEDOUT 
element * /main/BR_PHASE2/LATEST 
element * /main/LATEST 

確實會在主枝

element * CHECKEDOUT 
element * .../BR_PHASE2/LATEST 
element * /main/LBL_MS_PHASE2_04-NOV-2010 -mkbranch BR_PHASE2 
element * /main/LATEST 

不會,因爲第三規則將首先應用創造新的版本,如果元素已被標記爲LBL_MS_PHASE2_04-NOV-2010

+0

你已經提到要始終使用:element */main/LATEST結束cs,但是如果我只想從分支BR_PHASE2中檢出文件,則不會創建錯誤。我在說,當我用/ main/LATEST結束它並簽出並檢入文件時,它會在主分支中更新。我該怎麼辦呢? – Madan 2010-11-22 15:02:44

+0

@馬丹:我已經在我的 - 更新 - 答案中解決了你的問題。 – VonC 2010-11-22 15:18:38

+0

非常感謝。將嘗試此解決方案,並返回查詢,如果有的話。 – Madan 2010-11-22 15:23:25