web-dev-qa-db-ja.com

Perforce 2013より前に、保留中のチェンジリストを別のブランチにシェルフ解除するにはどうすればよいですか?

Perforce Server 2012.2/538478を使用して、トランクから別のブランチにファイルのシェルフを解除するにはどうすればよいですか?

それをやろうとすると、私は次のようになります:

//filename... (not mapped to your workspace view)

Perforce 2013では、この nshelveコマンド が本当に役立つことがわかりました。

p4 unshelve -s <changlist#-with-shelved-files> -S //depot/streamname

しかし、私が現在使用しているバージョンでは、その問題を解決するためにnothingが見つかりました。

助言がありますか?

12
Yair Nevet

残念ながら、2013.1にアップグレードして改善されたアンシェルブ操作を行わなければ、手動でデータをコピーする必要があります。

  • トランクで棚上げを解除し、変更された特定のファイルに注目する
  • p4 edit他のストリーム/ブランチのファイル
  • シェルフ解除されたファイルを他のストリーム/ブランチに手動でコピーします(トランクでコミットされていないため、p4 copyまたはp4 integrateは使用できません)
  • 他のブランチでテストしてコミットする
5
gaige

あなたは正しいコマンドを見ていますが、おそらく正しいパラメータではありません。これは私がそれを使う方法です:

p4 unshelve -s 77655 -b MY_BRANCH_SPEC

これは、指定されたブランチ仕様を使用してファイルを新しいブランチにマップするチェンジリスト77655のシェルフを解除します。

重要なこととして、指定したブランチマッピングと現在のワークスペースマッピングの両方にソースファイルと宛先ファイルの両方が含まれていることを確認する必要があります。そうしないと、「ファイルがマップされていません」エラーが発生します。

7
ninesided

他の答えは私にとってはうまくいきませんでした、これは私がperforce 2014を使用してやったことです:

  1. 現在のワークスペースを編集して、// depot/product/B1/...と// depot/product/B2/...の両方を(通常のマッピングのように、相互にではなく、ワークスペースに)マップします。
  2. P4Vで、「ブランチマッピング」に移動します([表示]メニュー-> [ブランチマッピング])
  3. Ctrl + Nで新しいマッピングを開始(またはリストを右クリックして[新しいブランチマッピング...]を選択)
  4. 「ブランチマッピング」の下に、B1_TO_B2のような名前を付けます。
  5. たとえば、ビューの下のマッピングを置き換える

    //depot/product/B1/...       //depot/product/B2/...  
    
  6. OK
  7. シェルフされていないファイルが配置される空の変更リストを作成します(そうしないと、「デフォルト」の変更リストに移動します)。この新しいチェンジリストの数は、以下のコマンドでは<TARGET_CL>になります。
  8. コマンドラインで、次を実行します

    p4 unshelve -s <SOURCE_CL> -c <TARGET_CL> -b B1_to_B2
    
    • それが機能しない場合は、正しいワークスペースが.p4configに設定されていることを確認してください
  9. <TARGET_CL>内のファイルを解決するだけです。
5
yair

しばらく検索して読んだ後、棚上げされたチェンジリストを別のブランチに棚上げしない具体的な例に出くわしませんでした。最後に具体的な例をまとめます。

Assuming you have a shelved changelist 324426 in Branch B1 and want to unshelve it to Branch B2.

私はブランチスペックを作成し、チェンジリストを別のブランチに棚上げすることができました。ここがまさに私がしたことです:

1. Create a text file named branchSpec.txt, with the content below: set you own Branch name and View.

Branch:   B1_to_B2

View:
//depot/dev/main/B1/...       //depot/release/B2/...

2. p4 branch -i < branchSpec.txt
3. p4 unshelve -s 324426 -b B1_to_B2

ビオラ、B1のチェンジリスト324426で保留されたファイルがB2に保留解除され、送信できるようになりました。

3
yantaq

これにはP4 unshelveを使用できますが、A_to_Bというブランチマッピングを作成する必要があります。

1] p4シェルフ解除-s CL_NUM -b A_to_B

2] p4 add(追加のために開かれたファイル)

3] p4解決

注:ステップ2を忘れないでください。P4はデフォルトで宛先ブランチで開きません。 「p4を開く」で確認できます

0
yadu_sam

これを回避する方法は、P4 2012にあります。

  1. ブランチを手動でコピーしてトランクで上書きする
  2. P4クライアントのブランチを右クリックして、[オフライン作業の調整...]をクリックします。

これにより、新しいファイルと変更されたファイルを選択し、それらをチェンジセットに追加できます。

0
Vedran

本当に必要なのは「p4 move -f」だと思います。これについては、ここで詳しく説明します。 p4 move -f:使用目的

0
Mihail Mihaylov