プロジェクトを構築するためのスクリプトを実行するBambooプランがあります。スクリプトは、ソリューション内のAssemblyInfo.csファイルを次のビルド番号に更新してから、変更をコミットし、フェッチを実行して変更をマージし、複数のヘッドを取得しないようにします。
hg commit -m "$(Major).$(Minor).$(Build).$(Revision)"
hg fetch
Bambooからの出力は次のようになります。
02-Jul-2012 07:50:11 CommitChanges:
02-Jul-2012 07:50:11 Commiting version number changes for d:\Builds\TDFGE-DRD-JOB1
02-Jul-2012 07:50:11 hg commit -m "1.0.0.6"
02-Jul-2012 07:50:12 created new head
02-Jul-2012 07:50:12 hg fetch
02-Jul-2012 07:50:12 abort: multiple heads in this branch (use "hg heads ." and "hg merge" to merge)
02-Jul-2012 07:50:12 d:\Builds\TDFGE-DRD-JOB1\Build.proj(96,3): error MSB3073: The command "hg fetch" exited with code 255.
02-Jul-2012 07:50:12 Done Building Project "d:\Builds\TDFGE-DRD-JOB1\Build.proj" (UpdateVersionAndBuild target(s)) -- FAILED.
02-Jul-2012 07:50:12
02-Jul-2012 07:50:12 Build FAILED.
Mercurialのドキュメントによると、Fetchは最新のコードを取得し、変更をマージする必要があります。
これは非常に単純な作業のようです。いくつかのファイルを変更し、チェックインして続行します。だから私はここで何が欠けていますか?マージなどを行う必要がありますか?PS。元のコミットの後に別のマージ/コミットを追加しようとしましたが(正しくないように見えましたが、完了しました)、メインリポジトリにプッシュバックされたファイルには、古いバージョン番号が残っていました。つまり、変更されていませんでした。マージコマンドがメインリポジトリをプライマリ親として使用したようです。