1

プロジェクトを構築するためのスクリプトを実行する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。元のコミットの後に別のマージ/コミットを追加しようとしましたが(正しくないように見えましたが、完了しました)、メインリポジトリにプッシュバックされたファイルには、古いバージョン番号が残っていました。つまり、変更されていませんでした。マージコマンドがメインリポジトリをプライマリ親として使用したようです。

4

2 に答える 2

0

結局のところ、答えは私が探していたものではなかったようです。HGで問題が発生した理由はまだわかりませんが、バージョン番号の変更を更新してコミットすることはおそらく不可能です。私の推測では、Bambooデプロイのメインリポジトリに戻るパスがない理由は、コミットのために別のBambooデプロイが開始され、ビルドの無限のループが発生するためです。

最終的に、ファイルを更新し、ビルドし、NuGetパッケージを作成して、完了するようにコードを変更しました。

于 2012-07-02T16:27:50.157 に答える