2017-01-11 13 views
1

私は、特定のブランチとラベル上のすべてのファイルを検索し、それらのファイルを別のブランチに簡単にマージしてから、新しくマージしたファイルにラベルを付けるBase ClearCaseのスクリプトを作成しようとしています。別のラベル。例えばcleartool findmergeとラベル

は、ブランチ\main\Proj\Proj_INT1上のファイルを指定したとVer4をラベルされた、私は\main\Proj枝にファイルをマージし、Ver4X(彼らは合併を必要としているIFF)にラベルを付けたいです。

私は-fver "\main\Proj\Proj_INT1\Ver4"を使用して、マージしたいファイルのバージョンを知ることができますが、マージをどのように組み合わせて、ラベルを適用するかはわかりません。

ドキュメントからは、cleartool findmerge ... -merge -exec "cleartool mklabel ..."を実行することができないため、現在はに試行しています。結果のログを解析してすべてのファイルバージョンを取得します。しかし、findmergeコマンドがディレクトリで停止していることを考えると、すべてのディレクトリとファイルがマージされるまで、この操作を何度も繰り返す必要があります(スクリプトを作成してcleartoolの出力を解析するための頭痛です)。

マージを実行してファイルにラベルを付ける慣用的または簡単な方法はありますか?おそらく、私はマージを実行し、cleartoolがマージされたファイルのバージョンを表示するログを生成するようにすることができます。

また、cleartool findmerge ... -mergeの操作を実行すると、どうやって非自明なマージを処理しますか?私は些細なマージは期待していませんが、私はエラーでスキップしたい、または単純ではないマージに遭遇した場合にマージを完全に停止したいと思います。

答えて

1

私は「ClearCase: When using clearfsimport to perform a reset merge, how can I keep it from creating evil twins?」で述べたように、以下を行う必要があります。最初の

  • findmergeフォルダ(-type d)、原因となる任意の手動マージを解決するために、その後のファイル(-type f
  • 使用findmerge -abort findmergeが失敗する。

代わりのfindmerge ... -mergeを使用して、私はcleartool merge構文を使用して-exec "cleartool merge $CLEARCASE_PN..."を使用していました。

+0

実際の質問は、ファイルにラベルを付けることです。あなたは私が '-exec" cleartoolマージを行うことを示唆していますか?&& cleartool mklabel ... "'、またはfindmergeコマンドから何らかの形で新しいバージョンを取得して解析し、ループ内で 'cleartool mklabel'を使うことはできますか? ? – Darthfett

+0

@Darthfettマージされたバージョンは最終バージョンで、現在のバージョンがデスティネーションビューになるため、最初のアプローチが有効です。 – VonC

+0

私はドキュメントを見ていますが、マージする前にファイルをチェックアウトする必要がありますか? '-exec" cleartool checkout ... && cleartool merge ... && cleartool checkin ... && cleartool mklabel "'のように見えることに同意しますか? – Darthfett

関連する問題