2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Perforce Helix Coreで作業後にタスクストリームを作ってサブミットしたい

Last updated at Posted at 2020-03-10

#タスクストリームとは
公式マニュアル

Perforceのストリームで最小限の関連するファイルのメタデータだけ保存するため軽量らしい。

Gitのブランチを作る感覚で作業後にタスクストリームを作ろうとしたらできなかった上に結構時間がかかってしまった。

#結論
先にタスクストリームを作っておいてから作業しましょう。

変更をShelveしておき、タスクストリームを作ってから
Branch Mappingを作成してからUnshelveすればよい。

jam_projストリームで作業した後にタスクストリームjam_r2.0にサブミットしたい場合は
一度Shelveしたあとに、Branch Mappingを作成してViewの欄に以下のように書く。

//depot/jam_proj/... //depot/jam_r2.0/...

その後jam_r2.0ストリームに移動しBranch Mappingを利用してUnshelveする。

#背景
Perforceのタスクストリームの機能を知らず、とりあえずメインストリームでプロトタイプの機能開発をしていた。
作業がひと段落したところでサブミットしたかったが、実験用コードなのでメインストリームにはサブミットしたくなかった。そしてこのタイミングでタスクストリームという機能を知った。

#英語圏にも同様のことで詰まってた人がいた
スレッドの#5
https://forums.perforce.com/index.php?/topic/3043-unshelving-to-another-stream/

#やってダメだったこと

  • 親ストリームで作ったPending listから子のタスクストリームにサブミットしようとした
  • 親ストリームでShelveしてからストリームを切り替え、Unshelveする

どちらもに file(s) not mapped in stream というエラーでサブミット/Unshelveできず

#なぜできなかったか(仮説)
親ストリームで作ったShelveを子ストリームで取得、はできそう
参考リンク

マニュアルを読む限りはタスクストリームはストリームを作った後に作業したファイルのみ変更を記録(mapping)していると思われるので
親ストリームでのファイル変更を適用しようとすると存在しないと言われている?

Perforceに詳しい人がいたら実際のところどうなのか聞きたいです。

#結局どうしたか

  • 変更したファイルを別の場所にコピーし、チェンジリストをすべてRevertしてからストリームを切り替えた。
  • その後変更したファイルをチェックアウトして上書きしてサブミットした
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?