TeamCity 无法检查带有私有 git 子模块的 git 项目(项目本身是私有的,可以使用用户名/密码访问,并且子模块使用相同的凭据),所有源都存储在 bitbucket 上并通过 HTTPS 访问。TeamCity 能够在没有子模块的情况下使用相同的 VCS 根结帐其他项目就好了(所以我很高兴 credentails/proxy 问题不是问题)。
返回的错误是:
Failed to build patch for build #19 {build id=209, buildTypeId=CI_BC_123},
VCS root: "BitBucket VCS" {instance id=192, parent internal id=11, parent id=BITBUCKET_VCS, description: "https://bitbucket.org/team123/main-repo.git#"}, due to error: 'build patch' command failed.
stderr: Cannot fetch the 'https://username123@bitbucket.org/team123/sharedAsssetsRepo.git//username123@bitbucket.org/team123/sharedAsssetsRepo.git' repository used as a submodule at the 'repo/SharedAssets' path in the 'https://bitbucket.org/team123/main-repo.git' repository in the ba90b0c96170b1abf5af2322069662c7b541d908 commit
和子模块如下
[submodule "repo/SharedAssets"]
path =repo/SharedAssets
url = ../sharedAsssetsRepo.git
[submodule "repoB"]
path = resouceB
url = ../resourceB.git
TC v 9.0.4(内部版本 32407)在 Windows Server 2012 上使用服务器端结账(代理驻留在同一台服务器上)
我试过的:
- 确认
git clone --recursive
从 powershell 正确拉下 repo 和子模块 - 将子模块路径从相对路径转换为绝对路径
- 设置 git 全局代理设置
我根本无法使用代理端结帐(代理与安装了 mysysgit 的盒子位于同一个盒子上)fatal: unable to access ' <<repo>> ': Failed to connect to bitbucket.org port 443: Timed out
,这很奇怪,因为服务器客户端可以像 PowerShell 中的 git 一样连接(teamcity 中的 git 路径设置与 Windows 中的 git PATH 相同) )。