SCM 指令範例

Rational Team Concert™ Source Control 指令行介面 (CLI) 使用 SCM 指令,後面接著一或多個次指令。範例指令為 scm helpscm create workspace

別名是可以在來源控制中唯一識別項目的簡稱。別名為四位數(括上括弧),會顯示在它們所參照項目的左側。例如:

$ scm status 
 Workspace: (6377) "My Workspace" <-> (7487) "Stream"
   Component: (6429) "Flux Capacitor"
     Baseline: (8471) 6815 "v20091102"
     Outgoing:
       Change sets:
				(8459) --@ 98314 "Degauss Flux Capacitor" - <No comment>

在上例中,括弧中的每一個數字(6377、7487、6429、8471、8459)都是別名。

每一個次指令都有一組回覆碼。如果次指令成功,則傳回 0。當發生錯誤或問題,例如,衝突或是本端沙盒和遠端工作區不同步,就會傳回非零。

登入儲存庫

下列範例假設您已使用 lscm login 登入儲存庫。因此, 您只需對每一個次指令提供 -r repositoryNickName。例如:

$ lscm login -r https://your.repository.com:9443/jazz -n nickname -u echughes -c
Password (echughes @ https://your.repository.com:9443/jazz):           
Logged in to https://your.repository.com:9443/jazz

您也可以使用暱稱來參照儲存庫 https://your.repository.com:9443/jazz。例如,將 -r nickname 傳遞給次指令,而不傳遞 URL、使用者名稱和密碼。

著手進行

在您開始進行某專案之前,您必須提供儲存庫的使用者名稱、密碼和 URL。您也應該是團隊區域的成員。

尋找串流

如果您不知道要協同作業的串流名稱,您可以使用 lscm list streams -r nickname 來列出您具備存取權的串流。例如:

$ lscm -a y list streams -r l
DeLorian Upgrades
Home Energy Converter
Doc Brown's playpen

建立和載入工作區

在您找到要使用的串流之後, 可以建立一個遠端工作區來包含您所做的變更。例如:

$ lscm create workspace -r l myNewWorkspace -s "DeLorian Upgrades"
Workspace (8551) "myNewWorkspace" successfully created

新增 -s 參數是指定工作區應和哪一條串流協同作業。新工作區會以該串流作為預設流程目標,以及以串流的狀態作為其起始狀態。

如果要載入遠端工作區,請執行下列動作:

$ lscm load myNewWorkspace -r l
Downloading /flux.capacitor/requirements.txt  (0 B)
Downloading /flux.capacitor/diagrams/design.cad  (0 B)

獨立工作

在來源控制 CLI 中,您可以遵循一般的工作流程進行,例如:修改檔案、移入檔案、接受新變更,以及交付變更。

CLI 中的移入和交付動作,和 Eclipse 用戶端中的相同。移入是將變更從本端磁碟推送至遠端工作區;交付是將變更從遠端工作區推送至串流。

確定變更

在下列 CLI 範例中,您修改了數個檔案,並執行 status 來判斷何者已修改:

$ lscm status
Workspace: (8551) "myNewWorkspace" <-> (8552) "DeLorian Upgrades"
  Component: (8553) "Flux Capacitor"
    Baseline: (8554) 1 "Initial Baseline"
    Unresolved:
      -c /flux.capacitor/requirements.txt
    Outgoing:
      Change sets:
        (8555) --$ "Initial CAD"

status 指令會掃描所有的共用目錄中是否有變更, 因此可能會耗費長久時間。如果您只想檢視遠端工作區如何與串流比較,可以執行 lscm status –n, 如此就會忽略本端磁碟的掃描。

如果要確定變更,請使用 lscm checkin

$ lscm checkin flux.capacitor/
Committing...
Workspace: (8551) "myNewWorkspace" <-> (8552) "DeLorian Upgrades"
  Component: (8553) "Flux Capacitor"
    Outgoing:
      Change sets:
        (8556) --@ <No comment>

這個範例隱含地建立了新的變更集。輸出中會列出確定期間已接收檔案與資料夾的變更集。

在建立變更集之後, 可以讓它和工作項目相關聯,並加入註解。如果要指派工作項目,請使用 lscm changeset associate。如果要設定註解,請使用 lscm changeset comment

接受變更

您可以執行 lscm status,以定期檢視串流中的狀態:

$ lscm status -C
Workspace: (8551) "myNewWorkspace" <-> (8552) "stream19_test_max_results_1256765247692134"
  Component: (8553) "Flux Capacitor"
    Baseline: (8554) 1 "Initial Baseline"
    Outgoing:
      Change sets:
        (8556) --@ 
          Changes:
            ---c /flux.capacitor/requirements.txt
    Incoming:
      Change sets:
        (8615) --$ "Initial layout"
          Changes:
            ---c /flux.capacitor/diagrams/design.cad

-C 旗標顯示變更集的內容。

在上述範例中,只有一項變更送入至 design.cad。您可以接受這項變更,因為它沒有修改變更集中的任何檔案。

執行 lscm accept

$ lscm accept -v
Repository: https://localhost:9443/jazz/
  Workspace: (8551) "myNewWorkspace"
    Component: (8553) "Flux Capacitor"
      Change sets:
        (8615) ADMIN --$ "Initial layout" 
          Changes:
            --c /flux.capacitor/diagrams/design.cad

解決衝突

有時候,送入的變更會修改您已修改的檔案。

在以下的範例中,修改 flux.capacitor/requirements.txt 以併入規劃會議中的一項附註,然後移入檔案,並執行 status:

$ lscm status -C
Workspace: (8551) "myNewWorkspace" <-> (8552) "stream19_test_max_results_1256765247692134"
  Component: (8553) "Flux Capacitor"
    Baseline: (8554) 1 "Initial Baseline"
    Outgoing:
      Change sets:
        (8617) -#@ "Update from November planning meeting"
          Changes:
            -#-c /flux.capacitor/requirements.txt
    Incoming:
      Change sets:
        (8616) -#$ "Results of initial trials"
          Changes:
            -#-c /flux.capacitor/requirements.txt

發生衝突。將變更交付至串流的另一位使用者亦修改了您已修改的檔案。參與的檔案和變更集前面會用 # 表示衝突。當您接受別名為 8616 的變更集時,就會發生衝突。

$ lscm accept 8616 -v -i
Repository: https://localhost:9443/jazz/
  Workspace: (8551) "myNewWorkspace"
    Component: (8553) "Flux Capacitor"
      Change sets:
        (8616) ADMIN -#$ "Results of initial trials" 
          Changes:
            !-c /flux.capacitor/requirements.txt
Following workspaces still have conflicts after accept:
  myNewWorkspace
Run 'scm resolve' or 'scm conflicts' or 'scm status' for help in resolving the conflicts.

-i 會將衝突標記插入至檔案。這些標記類似於其他來源控制系統所用的標記。

變更清單中的 ! 指出檔案現在發生衝突。

您可以執行 scm conflicts,取得目前所載入元件中的衝突清單。

檔案含有就地衝突標記,指出發生問題:

- Must not need any more than 1.5 gigawatts of power
- Determine minimum necessary speed
<<<<<<< mine
  - Twin Pines parking lot?
=======
  - Initial trials suggest 60kmh
>>>>>>> proposed
 

<<<<<<< mine 和等號之間的字行來自您工作區中的變更集。等號和 >>>>>>> proposed 之間的字行來自送入的變更集。您可以執行 lscm conflicts -m flux.capacitor/requirements.txt,取得原始檔案。如果您想取得送入的版本,可以執行 lscm conflicts -p flux.capacitor/requirements.txt-m 是 mine 的簡短格式,-p 是 proposed 的簡短格式。

利用提案來解決變更。清除檔案中的衝突標記:

- Must not need any more than 1.5 gigawatts of power
- Determine minimum necessary speed
Initial trials suggest 60kmh

執行 lscm resolve,來確定變更,並和已使用移入的版本來解決衝突的儲存庫通訊:

lscm resolve -c flux.capacitor/requirements.txt

無任何輸出指出已解決衝突。

-c 指出應使用移入的版本來解決衝突。您也可以利用 -p,以提議的版本來解決。

現在您可以進行更多的變更,或是使用 lscm deliver 來交付變更集:

$ lscm deliver
Delivering changes from "myNewWorkspace" into "DeLorian Updates"
  No baselines to flow.

使用變更

如果要判斷何人修改了檔案中的某些字行,請執行 lscm annotate

$ lscm annotate flux.capacitor/requirements.txt 
1 Marty (8556) 2009-11-04                       - Must not need any more than 1.5 gigawatts of power 
2 Marty (8556) 2009-11-04                       - Determine minimum necessary speed 
3 Doc   (8616) 2009-11-04  Results of initial t   - Initial trials suggest 60kmh 

註釋的輸出有下列六個直欄:

如果要比較檔案的不同版本,請使用 scm diff,這會產生一個標準修補程式。

如果要刪除未確定的變更,請使用 scm undo

Releng 作業

本節說明進階指令,這些指令主要供會配置其他使用者之 Rational Team Concert Source Control 的管理者使用。大部分使用者只會從現有的串流來建立和載入工作區。

新增元件

元件是原始檔樹狀結構的分組, 隨時將原始碼邏輯地分組在一起。

隨著專案的增長,您有時需要新增一些原始檔樹狀結構。如果用現有的元件來保留變更沒有意義, 就需要加入新的元件:

$ lscm create component "Flux Capacitor" "DeLorian Upgrades" -r l
Component (8553) "Flux Capacitor" successfully created.

在上述範例中,您在 DeLorian Upgrades 串流中建立一個新元件。其工作區會和該串流協同作業的使用者, 會看到這項元件的新增項目,以送入的變更形式出現。當它們接受送入的變更時, 使用者會收到元件中的內容。

如果使用者想將檔案新增至為該目的而建立的元件中, 使用者可以使用 share 次指令來執行這項作業。Rational Team Concert Source Control 只容許將目錄和資料夾放到工作區中共用。使用者必須將新元件加入遠端工作區:

$ lscm workspace add-component -r l myNewWorkspace 8553
Component (8553) "Flux Capacitor" successfully added.

在上例中, 別名 8553 參照您在先前範例中新建的元件。

現在新元件位於工作區中,因此使用者必須執行 share,將原始檔樹狀結構放到工作區中共用:

$ lscm share -r l myNewWorkspace 8553 flux.capacitor
Uploading files...
Shared successfully

在上例中,這個動作是將 flux.capacitor 目錄內容,上傳至名為 myNewWorkspace 的遠端工作區,並將它新增至 8553 所指定的元件,亦即前一個步驟中的 Flux Capacitor


意見

以上說明對您有幫助嗎?您可以在 Jazz.net 網站中提供意見(需要登錄):在討論區中提供意見提交錯誤