1

企業の Starteam CM サーバーをローカル分散バージョン管理システム (Mercurial) でミラーリングしようとしています。チェックアウト機能での Starteam のキーワード拡張により、多くの変更が表示されるという問題が発生しています。たとえば、サーバーは $History を各チェックインのコメントやその他のメタデータのログに展開するように設定されています。これらは、マージしようとすると、厄介な競合を引き起こすことがよくあります。

キーワードを手動で「展開解除」することはできますが、コードベースが非常に大きく、これには法外な時間がかかります。

4

2 に答える 2

0

Mercurial 側の別のオプションは、precommitフックを使用して、スターチーム チェックアウト ファイル内のキーワードを自動的に展開解除することです。

あなたの~/.hgrcかもしれないこのような何かがトリックを行う:

[hooks]
precommit.unexpand_starteam = find . -name '*.cpp' -print0 | xargs -0 perl -pie 's/$History.*?\n\n//m' ; exit 0

これにより、コミットの直前に、すべてのファイルの最初の空白行まで $History からすべてが削除されます。私は starteam を使用したことはありませんが、履歴ブロック (空白行は推測でした) の末尾を特定する何らかの方法が必要であり、perl の行を変更して、準備ができていることを反映する必要があります。

于 2009-07-12T16:53:50.510 に答える