OS X服务器 – bot无法从存储库获取源代码

我有一个以前版本的OS X服务器设置和运行良好,但是当我安装升级到3.2.1时,我发现我的机器人都不会正常工作。 这些是我每次尝试集成时遇到的问题:

构build服务错误不能适应缓冲区中的数据(-1)。

构build服务警告源控制操作失败,因为找不到工作副本。

构build服务警告更新现有结帐时发生错误。 回到干净的结帐..

我可能在错误的地方看,但我认为这些错误意味着我无法连接到我的Git存储库。 这是部分证实,当我从Xcode删除我的存储库,并再次运行机器人,并得到相同的错误。 (我已经在Xcode中重新添加了资源库,并执行了Check Out来testing它,所以我非常确定所有的连接细节都是正确的。)

使用以前版本的OS X Server,我确定我已经直接从服务器连接到存储库,如Help > Server Tutorials > Automate Xcode builds

第3步。让Xcode服务访问git仓库

Xcode服务机器人从您的源git存储库访问项目和代码。

单击存储库,然后单击添加button(+)。 从New Repositorypopup菜单中select连接到Git存储库。

但在最新版本中,当您单击“添加”button时,只需创build一个新的存储库,而不是连接到现有的存储库。 网上的说明(现在)说:

连接到远程存储库

如果您在远程服务器上的Git或Subversion存储库中有项目,则可以在您的开发Mac上将它们的凭据存储在Xcode的Accounts(帐户)首选项中。 然后,当您需要访问存储库时,您不必每次都重新input凭据。

将远程存储库的凭据添加到开发Mac

为了让Xcode Server在您的项目上执行集成,它还必须能够访问其源代码存储库。 configurationXcode服务器连接到您的远程存储库。

  • select开发Mac上的Xcode> Preferences。

  • 点击工具栏中的帐户。

  • 单击添加button(+),然后select添加存储库。

  • 在文本字段中,input存储库的URL(例如,svn + ssh://svn.example.com/ProjectName或https://example.com/git/repository.git ),然后单击下一步button。

  • 在“帐户”偏好设置的“存储库”窗格中input您的用户名和密码。

这有点含糊,但似乎表明,现在OS X服务器使用在Xcode的偏好设置的存储库。

无论如何,现在我的OS X服务器似乎无法访问存储库。 我在这里错过了什么?

谢谢

更新:

假装它不存在的一个月后,我又回到了这个问题,并做出了以下结论:

– OS X Server 3.2.1,OS X Server 3.2.2和OS X Server 4.0在两台不同的机器上出现问题。

当repo在运行Gitblit的服务器上,而不是在远程的Bitbucket仓库中,或者在本地OS X服务器中托pipe的Git仓库时,问题就出现了。

– 问题只发生在较大的回购。

我已经用最难以想像的方式解决了这个问题!

当OS X Server连接到存储库以下载源代码时,它使用Xcode库。 Xcode使用libgit2进行下载,其中有一个已知的错误导致了缓冲区错误。 它已在v0.21.2中修复,但最新的Xcode(6.1.1)仅使用v0.21。 以前的Xcode版本只使用v0.20,所以希望未来的Xcode版本会使用v0.21.2 +,在这种情况下,这个修复应该不是必需的。

无论如何,Xcode 6.1.1的解决scheme是:

  1. 从这里下载并解压Xcode使用的gitlib的版本: https : //github.com/libgit2/libgit2/releases/tag/v0.21.0
  2. 对src / transports / http.c做如下更改: https : //github.com/libgit2/libgit2/commit/7d729d0bfd897e8685099b160b6dbfd7f4ebd588
  3. 保存http.c文件
  4. 使用这里的说明构build你的编辑版本的gitlib2,即:

    • 下载CMake
    • 导航到解压缩的libgit2-0.21.0文件夹后,在terminal中运行以下命令:

      $ mkdir build && cd build

      $ cmake ..

      $ cmake –build。

  5. 您的服务器上的 Finder中,转至应用程序文件夹,右键单击Xco​​de并select“显示包装内容”。 进入Contents / Developer / usr / lib文件夹并将'libgit2.dylib'文件重命名为'libgit2.dylibold'或类似的文件。

  6. 从libgit2-0.21.0 / build文件夹中新build立的“libgit2.0.21.0.dylib”文件,将其重命名为“libgit2.dylib”,并将其复制到/ Applications / Xcode / Contents / Developer / usr / lib您的服务器上的文件夹

  7. 重新启动OS X服务器,并再次从Xcode集成你的机器人。

当你创build一个bot时,远程仓库将被添加。 您不必在OSX服务器中添加存储库。

Interesting Posts