1

我有一个运行脚本来构建项目的 Bamboo 计划。该脚本将解决方案中的 AssemblyInfo.cs 文件更新为下一个内部版本号,然后提交更改并执行 fetch 以合并任何更改并避免获得多个 head。

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 部署主存储库的路径的原因是因为这会导致另一个竹子部署由于提交而启动,并导致构建的无限循环。

最后,我将代码更改为仅更新文件、构建、创建 NuGet 包并完成。

于 2012-07-02T16:27:50.157 回答
0

万一有人遇到同样的问题。我相信没有提交的原因是竹子在 ci 服务器上有一个存储库缓存。作业存储库是从缓存存储库克隆的,因此任何推送都将转到缓存存储库,而不是发送到 bitbucket。

为了解决这个问题,我明确推送到托管仓库。

hg push https://user:password@bitbucket.org/myrepo

于 2014-07-31T19:05:47.640 回答