TeamCity Visual Stuioプラグインに「Mercurialのリモート実行(パーソナルビルド)」機能を追加するというアイデアをいじっています。
v6.5以降、TeamCityは「リモート実行ブランチトリガー」をサポートします。TeamCityのトリガーに一致する名前付きブランチがプッシュされると、TeamCityはそのブランチのパーソナルビルドを実行します。
アイデアは、現在のブランチ(たとえばdefault
)から現在の発信チェンジセットを取得し、それらをと呼ばれる一時的な名前付きブランチに移動することremote-run
です。次に、これがCIにプッシュされるため、パーソナルビルドがトリガーされ、パーソナルビルドが成功すると、変更が元のブランチに戻され、remote-run
ブランチが削除されます。
これに関していくつか質問があります:
- それも意味がありますか?
- これにはどの拡張子を使用する必要がありますか?MqExtensionは必要なすべてを実行すると思いますが、代替手段はありますか?
- リモート実行中にユーザーが追加の変更をコミットするとどうなりますか?「一時的なブランチ」のチェンジセットはどのように元のブランチにマージされますか?
私が現在ターゲットにしているシナリオは次のとおりです。デフォルトのブランチで作業しているときに、ユーザーは3つの新しいリビジョンを追加します。次に、これらの変更をTeamCityの個人用ビルドとして実行したいと考えていますが、特別な名前のブランチにこれらのリビジョンをコミットするのを忘れていました。代わりに、私のアドインはそれらの送信変更を受け取り、名前付きブランチに配置します。パーソナルビルドが成功すると、それらの変更は元の(デフォルトの)ブランチに戻され、リモートリポジトリにプッシュされます。
このようなもの:
[default] A---B---C---D
B
、C
およびD
が新しいリビジョンであると仮定して、ツールに次のことを実行させます。
[default] A
\
[remote-run] B---C---D
そして、それが完了したら、元の状態に戻します。つまり、次のようになります。
[default] A---B---C---D
編集:私はMqを使用して変更を別のブランチに移動することができましたが、これは非常に簡単でした。残念ながら、この変更を元に戻す方法がわかりません:)
これが理にかなっていることを願っています!