构建失败,因为存储库存在或仓库等待锁定而导致回购请求失败

时间:2018-09-03 10:49:56

标签: mercurial teamcity

摘要

我在TeamCity中建立了一个使用Mercurial作为VCS的版本,由于以下两个原因之一,它反复失败:

  1. hg init-存储库已经存在,但是我在此之前删除了整个目录,因此它肯定不存在。
  2. hg pull-等待锁超时,但是它正在等待的锁似乎是它自己的锁。

我真的希望有人曾经遇到过这个问题,或者也许能够给我一些解决问题的想法。

设置

  • 我正在使用TortoiseHg作为采购客户端,并且已经对其进行了更新 (因此为Mercurial)在构建服务器和 代理商。
  • 该代理正在Windows 7 VM上运行。
    我有一个Windows 10 VM,具有相同的TeamCity / Mercurial设置 工作正常。

  • 要提取的存储库位于网络共享上。

  • 被拉到的文件夹在VM的辅助驱动器上。

我看到的两个问题如下:

1.汞初始化失败

步骤:

  1. 从buildagent手动删除整个工作目录,因此是.hg文件夹,是父文件夹。
    工作文件夹现在甚至不存在,因此TeamCity必须完全重新创建该文件夹。
  2. 在TeamCity上运行构建,并清除所有选定的文件。
  3. 开始构建,创建目录并调用hg init
  4. 由于“存储库已存在”而导致hg初始化失败的错误消息。
  5. 当我查看目录时,可以看到.hg文件夹以及其中的一些文件,包括wlock文件。

2。拉动失败

步骤:

  1. 将问题1中的工作目录保留在适当位置,包括.hg目录。
  2. 确保删除所有锁定文件,并已运行hg recovery,以防万一。
  3. 在TeamCity上运行构建,而无需清理目录。
  4. 日志显示了hg拉启动文件和捆绑文件,但也显示“正在等待主机'BUILDAGENT'上进程'3408'持有的E:\ blah的工作目录上的锁
    3408是一个示例,该数字每次都会更改,并且对应于似乎在执行拉动的hg.exe进程。
  5. 最终,在出现大量捆绑和文件消息后,我会收到一条消息,提示它等待锁已超时。
    但是,当然,它正在等待的锁似乎是它自己持有的锁!
  6. 如果在此期间删除wlock文件,我将看到消息“ X秒后获取锁定”,并在它之后立即“等待主机'BUILDAGENT上的进程'3408'持有的存储库E:\ blah上的锁定” '。最终它将失败,并显示一条有关被放弃的交易的消息。

有人有什么想法吗?

0 个答案:

没有答案