2013-03-08 91 views
7

我所做的:如何用git-p4克隆分支?

git p4 clone //depot/path/to/project/trunk/@all project 

創造projectmaster分支。現在我想將//depot/path/to/project/release克隆到projectrelease分支。這是如何完成的?

更新:使用--detect-branches也不起作用。它報告它正在更新兩個分支(當真的有三個分支時),但是git branch報告只有主分支存在。

回答

0

我相信「檢測分支」依賴於您有一個分支映射與您的倉庫中的分支路徑相同的名稱。如果情況並非如此,那麼在運行git-p4 clone命令之前,您可能需要使用suggested method定義git-p4.branchList配置值在空的git倉庫中。

+0

啊,這是有道理的。我想知道分支檢測「魔法」是如何工作的。我會試試這個。謝謝。 – 2013-03-11 16:59:01

+0

這仍然不適合我。我懷疑至少在我們的一些分支機構中,雙向合併已經在兩個方向上發生了,並且它正在向git-p4的作品投擲扳手。 – 2013-03-13 18:22:47

+0

這對我來說是一個非常大的回購,與我見過的最混亂的分支/合併。由於git-p4是用python編寫的,所以它實際上並不難調試。 – cmcginty 2013-03-15 19:43:41

8

下面是我使用git-p4時的設置注意事項。這可能有幫助:

  • 下載p4 linux client。在~/bin/usr/local/binchmod +x

  • 設置的git-p4是文件存儲爲根

    chmod 755 /usr/share/doc/git/contrib/fast-import/git-p4 
    ln -s /usr/share/doc/git/contrib/fast-import/git-p4 /usr/local/bin 
    
  • 定義的Git全局的混帳P4

    git config --global alias.p4 '!git-p4' 
    git config --global git-p4.detectRenames true 
    git config --global git-p4.detectCopies true 
    
  • 集定義爲直接 'P4'用法

    export P4PORT=SERVER_NAME:PORT_NUMBER 
    
  • 設置登錄憑據

    export P4USER=USER_NAME 
    export P4PASSWD=PASSWORD 
    
  • 選擇Perforce的分支使用P4「客戶」

    運行「P4客戶端」命令,只添加的路徑/分支你 感興趣。如果你想命名客戶端工作空間,您可以將 可選的CLIENT_NAME參數添加到命令末尾。這將允許您 在同一臺計算機上使用不同的客戶端定義。

    $ p4 client [CLIENT_NAME] 
    
    View: 
    //depot/main... //CLIENT_NAME/main... 
    //depot/patch... //CLIENT_NAME/patch... 
    //depot/dev... //CLIENT_NAME/dev... 
    
  • 克隆庫

    • 簡單的導入

      git p4 clone --use-client-spec --detect-branches //[email protected] GIT_DIR 
      
    • 高級進口

      git init PROJ; cd PROJ/ 
      git config git-p4.branchList main:patch 
      git config --add git-p4.branchList main:dev 
      git p4 clone --use-client-spec //[email protected] . 
      
  • 提交更改返回Perforce

    爲了向Perforce提交更改,它需要客戶端工作空間 與git工作樹分離。建議工作區在 與Perforce git工作目錄相同的文件系統上。

    此外,對工作空間路徑的引用存儲在Perforce 服務器上,並將在p4 submit命令期間使用。

    第一步是創建本地客戶端工作區。 CLIENT_NAME是 的可選參數。如果你沒有定義它,p4將使用你的主機名。

    p4 client [CLIENT_NAME] 
    

    在完成p4命令之前,您將被移動到文件編輯器。使用此 可以在將任何客戶端設置發送到 服務器之前更改任何客戶端設置。您必須將Root值更改爲 git樹之外的新目錄(例如../p4-working)。另外,在退出之前驗證OwnerClient 值。這些值取自您的環境,並且 無法在編輯器中更改。

    p4 clients | grep USERNAME 
    

    如果您沒有使用默認的客戶端名稱,它必須在本地 混帳配置定義:

    git config git-p4.client CLIENT_NAME 
    

    當你準備把你的代碼更改,請使用以下命令:

    git p4 rebase 
    git p4 submit 
    

    您可以從服務器刪除客戶在使用時不再:

    p4 client -d CLIENT_NAME 
    
+1

你錯過了 - 在第二個'git config --add git-p4.branchList main:dev'中添加 – 2015-04-13 18:38:15