未打开频道Teamcity上的自动合并错误(git)

时间:2016-07-11 07:25:40

标签: git teamcity bitbucket teamcity-9.0

我在ubuntu(TeamCity Professional 9.1.7 (build 37573))上使用 TeamCity 。最近有一些自动合并的问题(git)。 我从未改变配置中的任何内容。 我试图删除工作目录。它只对几次合并有所帮助。

症状: 构建日志看起来很干净,我在构建概述中得到了这个:

Failed to merge sources in VCS root foo. Merge error 'git fetch'     command failed.
stderr: git@bitbucket.org:foo/foo.git: channel is not opened.
exit code: 1.

虽然,但在运行此代理的代理中,我在teamcity-vcs.log中收到完全不同的错误:

[2016-03-30 15:14:31,722]   INFO -      jetbrains.buildServer.VCS - [/home/ubuntu/BuildAgent/work/7676127c0a691f42]: /usr/bin/git show-ref refs/remotes/origin/foo 
[2016-03-30 15:14:31,775]   INFO -      jetbrains.buildServer.VCS - [/home/ubuntu/BuildAgent/work/7676127c0a691f42]: /usr/bin/git log -n1 --pretty=format:%H%x20%s 193f46d88205c5e419a8a7458e742ce9b598cca8 
-- 
[2016-03-30 15:14:31,797]   WARN -      jetbrains.buildServer.VCS - '/usr/bin/git log -n1 --pretty=format:%H%x20%s 193f46d88205c5e419a8a7458e742ce9b598cca8 --' command failed.
stderr: fatal: bad object 193f46d88205c5e419a8a7458e742ce9b598cca8 
[2016-03-30 15:14:31,798]   INFO -      jetbrains.buildServer.VCS - [/home/ubuntu/BuildAgent/work/7676127c0a691f42]: /usr/bin/git fetch --progress origin +refs/heads/foo:refs/remotes/origin/foo 
[2016-03-30 15:14:35,832]   WARN -      jetbrains.buildServer.VCS - Error output produced by: /usr/bin/git fetch --progress origin +refs/heads/foo:refs/remotes/origin/foo 
[2016-03-30 15:14:35,832]   WARN -      jetbrains.buildServer.VCS - remote: Counting objects: 2, done.ESC[K
remote: Compressing objects:  50% (1/2)   ESC[K
remote: Compressing objects: 100% (2/2)   ESC[K
remote: Compressing objects: 100% (2/2), done.ESC[K
remote: Total 2 (delta 1), reused 0 (delta 0)ESC[K
From bitbucket.org:bar/bar
   62ba378..193f46d  foo  -> origin/foo 

好像日志命令失败了..

感谢。

更新:我得到一个更新,有轶事证据表明这是由BitBucket通过SSH服务器的git特别发生的变化。

4 个答案:

答案 0 :(得分:23)

https://youtrack.jetbrains.com/issue/TW-46052,问题已解决。该修补程序将随下一版本9.1.8或10一起提供。如果您不想等待发布,可以通过下载from here手动更新git插件(以访客身份登录) ,或在JetBrains的构建服务器上创建一个帐户,并在您的安装中替换它。

  • 关闭TC
  • 将下载的文件jetbrains.git.zip放入%TEAM_CITY%/webapps/ROOT/WEB-INF/plugins替换现有文件
  • 重启TC

这解决了我和其他人的问题。

答案 1 :(得分:22)

TeamCity使用了最近在Bitbucket Cloud中禁用的ssh多路复用。如果您受此问题的影响,请观看https://youtrack.jetbrains.com/issue/TW-46052,修补程序将在那里发布(在撰写时,TeamCity 9.1.x和9.0.x有一个修复程序)。没有安装新git-plugin的解决方法是使用https或匿名协议而不是ssh。

<强>更新

初始修复导致更改集合失败,并在TeamCity 8.1.x和9.0.x中出现超时错误,这是fixed now

答案 2 :(得分:10)

已更新:JetBrains已针对此问题发布了修补程序 - 有关详细信息,请参阅https://youtrack.jetbrains.com/issue/TW-46052

答案 3 :(得分:1)

我已经两次遇到过这个问题而烦恼了。

对于正确安装TeamCity的Linux用户(例如,有一个单独的用户和一个teamcity服务),这个脚本应该完成所有繁重的工作(假设你有sudo):

function patch_teamcity_plugin() {
  # Find teamcity plugin dir.
  sudo updatedb
  path_part="webapps/ROOT/WEB-INF/plugins"
  teamcity_plugin_dir=$(locate $path_part | grep -o -E ".*$path_part" | head -n 1)

  if [ "$teamcity_plugin_dir" == "" ]; then
    echo "Cannot find teamcity plugins directory." 1>&2
    return 1
  fi

  login_url="https://teamcity.jetbrains.com/guestLogin.html?guest=1"
  cookie_file=$(mktemp)

  # Log in as guest.
  # Wget login - thanks to: http://stackoverflow.com/a/1432161/2041634
  wget --save-cookies $cookie_file --keep-session-cookies $login_url

  # Download the plugin to the teamcity plugin directory.
  plugin_url="https://teamcity.jetbrains.com/repository/download/TeamCityPluginsByJetBrains_Git_JetBrainsGitPluginTeamCity91x/843194:id/jetbrains.git.zip"
  plugin_dest_filename="$teamcity_plugin_dir/jetbrains.git.zip"
  sudo wget --load-cookies $cookie_file $plugin_url -O $plugin_dest_filename

  if [ "$?" != "0" ]; then
    echo "Failed download of plugin." 1>&2
    return 1
  fi

  # Copy permissions - thanks to: http://unix.stackexchange.com/a/20646
  sudo chown --reference="$teamcity_plugin_dir" "$plugin_dest_filename"
  sudo chmod 0755 "$plugin_dest_filename"

  # Restart TeamCity server.
  sudo service teamcity restart
}

patch_teamcity_plugin()