2017-03-05 5 views
0

次のシナリオでストリームを設定する方法に苦労しています:mainlineをサブフォルダにマッピングするdev streamをセットアップするにはどうしたらいいですか?

標準のメインストリーム、リリース、およびdevストリームを使用しているライブラリプロジェクト(//libX)があります。

ただし、このライブラリを使用する別の製品(//libX/projectA)用のdevストリームが必要です。これらの製品は異なるディレクトリ構造を持ち、//libX/main/...をサブフォルダ//libX/projectA/extern/libX/...にマッピングしたいと考えています。

例えば、私のlibには、次のように構成されています

//libX/main 
    /bin 
    /src 
    /tests 
    readme.txt 

そして、私のプロジェクトは完全に何か他のものですが、私のlibを使用

//libX/projectA 
    /documentation 
    /extern 
     /libX 
      /bin 
      /src 
      /tests 
      readme.txt 
     /MaxSDK 
    /source 
    /tools 
    config.xml 

私は仕事にそれを持っていた最も近いでしたこのような:

  • パス:share ...
  • 再マップ:... extern/libX/...

ただし、再マップはローカルマシン上のファイルの場所を修正するように見えます。上記のリマップ設定を使用すると、libXファイルはprojectAファイルと同じルートになります。

上記のシナリオはストリームで動作できますか、分岐仕様に戻ってください。

ありがとうございます!

+0

あなたの例を少し拡張する必要があります - 他のファイルはlibXファイルと "混在"していますか?彼らはどこから来たのか?彼らはどこに行くのですか? –

+0

'import'または 'import +'オプションが役立つかもしれませんが、Samが質問した質問に対する回答を知らなければ、確かに言い表せません。 – P4Jen

答えて

2

あなたのプロジェクトは、あなたのlibストリームの子ストリームであってはならない - 独自のストリームデポにそれを置くあまり混乱ようだ:

//libX/main 
    /bin 
    /src 
    /tests 
    readme.txt 

//libX/projectA (child of //libX/main) 
    /bin 
    /src 
    /tests 
    readme.txt 

//projectA/main 
    /documentation 
    /extern 
     /libX  (mirror of //libX/projectA) 
      /bin 
      /src 
      /tests 
      readme.txt 
     /MaxSDK 
    /source 
    /tools 
    config.xml 

そして、あなたが行うことによって、この構造を得るだろう:

Stream: //projectA/main 
Paths: 
    share ... 
    import extern/libX/... //libX/projectA/... 

は、残念ながら、このアプローチにはいくつかの制限があります - あなたのlibXパスがない些細なimport path depotPath構文がデポのパスをインポートするのでshare ...そしてimportは、それを正しくありません拾うではないだろうしている場合ストリーム経路。通常のインポートでは、このストリーム内からlibX/projectAに変更することはできません。import+を使用してこれを許可することができますが、import+で十分な問題が見られ、ライブラリを変更するときに自分のワークフローを作成することになります:

p4 switch //libX/projectA 
(make changes) 
p4 submit 
p4 switch //projectA/main 

このライブラリは、あなたが独立して、その中にその作業を行うことができます(など、プロジェクトのユースケースをカバーする独自のユニットテストで)十分にモジュラーであることを前提としていたが。

+0

ええ、私はlibのメイン、リリース、devブランチのストリームを保持すると思いますが、クライアントプロジェクトでは、標準的なブランチの仕様に固執します。そのように簡単になります。私がこのすべてをやっている理由は、どのプロジェクトがまだ私の図書館に統合されていないかをストリームグラフの色付きの矢印で確認することでした。 –

+1

ああ、実際には、プロジェクトごとにライブラリを変更しています。あなたの元の質問に欠けている言葉は "変更"でした。 :)私は実質的に秒で私の答えを修正します。 –

+0

はい、それぞれのプロジェクトがライブラリを変更している可能性があります。ストリームのサポートによって、これらの変更を検出してメインラインに統合するコードがあるときに役立ちます。 –

関連する問題