我有一个以前版本的OS X Server设置并运行良好,但是当我将升级安装到3.2.1时,我发现我的机器人都没有正常工作。这些是我在每次尝试集成时遇到的问题:
构建服务错误无法将数据放入缓冲区(-1)。
构建服务警告源控制操作失败,因为找不到工作副本。
构建服务警告更新现有结帐时发生错误。回到一个干净的结账..
我可能看错了地方,但我认为这些错误意味着我无法连接到我的Git存储库。当我从Xcode中删除我的存储库并再次运行bot并得到相同的错误时,这部分得到了证实。 (我已经在Xcode中重新添加了存储库并执行了Check Out来测试它,所以我很确定我的所有连接细节都是正确的。)
使用以前版本的OS X Server,我确定我已直接从服务器连接到存储库,如Help > Server Tutorials > Automate Xcode builds
中所述:
步骤3.授予Xcode服务访问git存储库的权限
Xcode服务机器人从源git存储库访问项目和代码。
单击“存储库”,然后单击“添加”按钮(+)。从New Repository弹出菜单中选择Connect to a Git Repository。
但是在最新版本中,当您单击“添加”按钮时,您只能选择创建新存储库,而不是连接到现有存储库。网上的说明(现在)说:
连接到远程存储库
如果您在远程服务器上的Git或Subversion存储库中有项目,则可以在Xcode的“帐户”偏好设置中将您的凭据存储在开发Mac上。然后,当您需要访问存储库时,您不必每次都重新输入凭据。
将远程存储库的凭据添加到开发Mac
要让Xcode Server对您的项目执行集成,它还必须能够访问其源代码存储库。配置Xcode Server以连接到远程存储库。
选择Xcode>开发Mac上的首选项。
单击工具栏中的“帐户”。
单击“添加”按钮(+),然后选择“添加存储库”。
在文本字段中,输入存储库的URL(例如,svn + ssh://svn.example.com/ProjectName或https://example.com/git/repository.git),然后单击“下一步”按钮。
在“帐户”偏好设置的“存储库”窗格中输入您的用户名和密码。
这有点模糊,但似乎暗示现在OS X Server使用在Xcode的首选项中设置的存储库。
无论如何,现在我的OS X服务器似乎无法访问存储库。我在这里错过了什么吗?
由于
更新
我假装它不存在一个月后又回到了这个问题,并且得出了以下结论:
- OS X Server 3.2.1,OS X Server 3.2.2和OS X Server 4.0在两台不同的计算机上出现问题。
- 当repo在运行Gitblit的服务器上,而不是远程Bitbucket repos,或者在本地OS X Server中托管的Git repo时,会出现问题。
- 问题只发生在较大的回购中。
答案 0 :(得分:3)
我已经用最容易想象的方式解决了这个问题!
当OS X Server连接到存储库以下载源时,它使用Xcode库。 Xcode使用libgit2进行导致缓冲区错误a known bug的下载。它在v0.21.2中修复,但最新的Xcode(6.1.1)仅使用v0.21。以前的Xcode版本仅使用v0.20,所以希望未来的Xcode版本将使用v0.21.2 +,在这种情况下,这个修复不应该是必要的。
无论如何,Xcode 6.1.1的解决方案是:
使用the instructions here构建您编辑的gitlib2版本,即:
导航到解压缩的libgit2-0.21.0文件夹后,在终端中运行以下命令:
$ mkdir build&& cd build
$ cmake ..
$ cmake --build。
在Finder 服务器上,转到“应用程序”文件夹,右键单击Xcode并选择“#34;显示包内容"”。转到Contents / Developer / usr / lib文件夹并重命名" libgit2.dylib'提交给' libgit2.dylibold'或类似的。
采取新创建的' libgit2.0.21.0.dylib' libgit2-0.21.0 / build文件夹中的文件,将其重命名为" libgit2.dylib'并将其复制到服务器上的/ Applications / Xcode / Contents / Developer / usr / lib文件夹中。
重新启动OS X Server,并再次从Xcode集成您的机器人。
答案 1 :(得分:0)
创建机器人时将添加远程存储库。您不必在OSX服务器中添加存储库。