背景
間(ユーザーを除く)すべてのチェンジを取得します。私は「メインライン」デポとPERFORCEの中に「ベータ」の枝を持っている「メインライン」とブランチ
"mainline"の最新コードを私の "beta"ブランチにマージしたいと思います。私は毎日約1回これをしなければなりません。毎日 "mainline branch"に約100以上のコミット/投稿があります。
通常、私はそうのようなものだろう。しかし、我々はなど、スクリプトを構築し、様々なメイクファイルにバージョン番号を更新し、迷惑な時間ごとのビルドプロセスを持っている
p4 integ //prod/mainline/... //prod/beta/...
cd $(p4 where //prod/beta/... | cut -d ' ' -f3 | sed 's/\.\.\.$//g')
p4 resolve ./...
問題
を。バージョン/ブランチ番号を更新し、ビルドサーバによって「ダミー」アカウント(すなわちdummy_user
)を使用してPERFORCEにチェックインされます。 これは、すべてのブランチで実行されます。は、マージ操作に任意の競合が発生します。
このバージョン番号の提出により、p4 integ
/p4 resolve
の操作が正常に完了しなくなり、「バージョン番号の更新操作」の影響を受けるこれらのファイルをすべて手作業でマージする必要があります。 私はこのバージョンナンセンスではなく、実際のコード変更を手でマージする必要があります。
質問
ユーザー除くp4 integ
枝に存在する(ただし、メイン/他の分岐に存在する)はまだありません変更リストの集合への道は、ありますか?しかし、私はすべての変更、リストのリストを取得するために自動化された方法はありません
for i in $(p4 changes //prod/mainline/... | grep -v dummy_user | cut -d ' ' -f2)
do
p4 integ //prod/mainline/[email protected]${i},${i} //prod/beta/...
done
:私はいつものような何かを行うことができ...
- が
mainline
内に存在し - しかし、まだ融合/統合されていない
beta
... - そして
dummy_user
によって作成されていません。
どのようにすればいいですか?
あなたのオプションが「より標準的」(より多くのP4、より少ない外部スクリプト)であるため、受け入れています。あなたは、その分岐スペックを道路の下で再利用したい場合、どのようなステップを実行するのか注意してください。ありがとう! – DevNull
余計な手順はありませんが、それはbranchspecの美しさです。一度作成して何度も使用します。 :) –