2013-03-08 9 views
7

私がやった:git-p4でブランチをクローンする方法は?

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

projectmasterブランチを作成します。今度は//depot/path/to/project/releaseをブランチprojectにクローンしたいと思います。それはどうですか?

更新:--detect-branchesを使用しても更新されません。 2つのブランチ(実際には3つのブランチがある場合)を更新していますが、git branchはマスターのみが存在すると報告しています。

答えて

0

"ブランチを検出する"とは、デポのブランチパスと同じ名前のブランチマッピングを使用していると考えています。そうでない場合は、git-p4 cloneコマンドを実行する前に空のgitリポジトリにgit-p4.branchList設定値を定義するsuggested methodを使用する必要があります。

+0

ああ、これは意味があります。私はどのように分岐検出 '魔法'が働いているのだろうかと思っていた。私はこれを試してみましょう。ありがとう。 –

+0

これはまだ私のために働いていません。私はマージが少なくともいくつかのブランチで両方向に行ったと思うし、git-p4の作業にレンチを投げている。 –

+0

過去に私が今まで見た中で最も混乱している枝/合併の人と、非常に大きなレポで私は働いています。 git-p4はPythonで書かれているので、実際にデバッグするのは難しくありません。 – cmcginty

8

git-p4を使用していたときのセットアップノートを以下に示します。役に立つかもしれません:

  • p4 linux clientをダウンロードしてください。

    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 
    
  • セットのGitのグローバルを定義し、ルートとして~/binまたは/usr/local/binchmod +x

  • セットアップのgit-P4でファイルを保存することは、直接は 'p4' の定義します用法

    export P4PORT=SERVER_NAME:PORT_NUMBER 
    
  • 設定ログイン資格情報

    export P4USER=USER_NAME 
    export P4PASSWD=PASSWORD 
    
  • /あなたに興味を持っ ている枝をパスのみを追加します。あなたがしたい場合はP4「クライアント」

    実行は 'p4クライアントのコマンドを使用して、そして

    選択PERFORCEのブランチクライアントワークスペースに名前を付けるには、コマンド末尾に オプションの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] . 
      
  • Submit Changes Perforce

    PERFORCEに変更を提出するには、クライアント作業領域 がgit作業ツリーとは別に必要です。作業領域は、Perforce git作業ディレクトリと同じファイルシステムの にあることをお勧めします。

    さらに、ワークスペースパスへの参照は、Perforce サーバーに格納され、p4 submitコマンドで使用されます。

    最初の手順は、ローカルクライアントのワークスペースを作成することです。 CLIENT_NAMEは です。オプションの引数です。定義していない場合、p4はホスト名を使用します。

    p4コマンドを完了する前に、ファイルエディタに移動します。この は、クライアント設定が サーバーに送信される前に変更できます。 Rootの値を gitツリー(例:../p4-working)以外の新しいディレクトリに変更する必要があります。また、終了する前にOwnerClientの値を確認してください。これらの値はご使用の環境から取得しており、 はエディタで変更できません。

    p4 clients | grep USERNAME 
    

    あなたはそれがあなたの地元の Gitの設定で定義されている必要があり、デフォルトのクライアント名を使用しなかった場合:

    git config git-p4.client CLIENT_NAME 
    

    あなたのコードの変更をプッシュする準備ができたら、コマンドを使用します。

    git p4 rebase 
    git p4 submit 
    

    あなたがサーバからクライアントを削除することができたときにはもうありません使用中:

    p4 client -d CLIENT_NAME 
    
+1

あなたがいなくなっています - 2番目の 'git config --add git-p4.branchList main:dev'に追加してください –

関連する問題