簡體   English   中英

OS X Server-機器人無法從存儲庫獲取源

[英]OS X Server - bot can't get source from repository

我已經安裝了OS X Server的先前版本,並且運行良好,但是當安裝升級至3.2.1時,我發現我的所有機器人都無法正常工作。 這些是我每次嘗試集成時都會遇到的問題:

生成服務錯誤無法將數據放入緩沖區(-1)。

生成服務警告源控制操作失敗,因為找不到工作副本。

生成服務警告更新現有結帳時發生錯誤。 退回干凈的結帳。

我可能在錯誤的位置查看,但是我認為錯誤意味着我無法連接到我的Git存儲庫。 當我從Xcode刪除存儲庫並再次運行bot並得到相同的錯誤時,部分確認了這一點。 (此后,我已經在Xcode中重新添加了存儲庫並執行了檢出以對其進行測試,因此可以肯定的是我擁有所有連接詳細信息。)

使用OS X Server的先前版本,我確定我已直接從服務器連接到存儲庫,如“ Help > Server Tutorials > Automate Xcode builds

步驟3.授予Xcode服務對git存儲庫的訪問權限

Xcode服務機器人從您的源git存儲庫訪問項目和代碼。

單擊存儲庫,然后單擊添加按鈕(+)。 從“新建存儲庫”彈出菜單中選擇“連接到Git存儲庫”。

但是在最新版本中,當您單擊“添加”按鈕時,您僅獲得創建新存儲庫的選項,而不是連接到現有存儲庫。 網絡上(現在)的說明說:

連接到遠程存儲庫

如果您在遠程服務器上的Git或Subversion存儲庫中有項目,則可以在Xcode的“帳戶”首選項中在開發Mac上存儲它們的憑據。 然后,當您需要訪問存儲庫時,不必每次都重新輸入憑據。

要將遠程存儲庫的憑據添加到開發Mac

為了使Xcode Server在您的項目上執行集成,它還必須有權訪問其源代碼存儲庫。 配置Xcode Server以連接到遠程存儲庫。

  • 在開發Mac上選擇“ Xcode”>“首選項”。

  • 單擊工具欄中的“帳戶”。

  • 單擊添加按鈕(+),然后選擇添加存儲庫。

  • 在文本字段中,輸入存儲庫的URL(例如svn + ssh://svn.example.com/ProjectName或https://example.com/git/repository.git ),然后單擊“下一步”按鈕。

  • 在“帳戶”首選項的“存儲庫”窗格中輸入您的用戶名和密碼。

這有點含糊,但似乎暗示現在OS X Server使用在Xcode的首選項中設置的存儲庫。

無論如何,現在我的OS X Server似乎無法訪問存儲庫。 我在這里想念什么嗎?

謝謝

更新:

假裝一個月不存在后,我又回到了這個問題,並得出以下發現:

-在兩台不同的計算機上,OS X Server 3.2.1,OS X Server 3.2.2和OS X Server 4.0會出現問題。

-當回購位於運行Gitblit的服務器上,而不是遠程Bitbucket回購或本地OS X Server中托管的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的解決方案是:

  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. 使用此處的說明來構建gitlib2的編輯版本,即:

    • 下載CMake
    • 導航到解壓縮的libgit2-0.21.0文件夾后,在終端中運行以下命令:

      $ mkdir構建&& cd構建

      $ cmake ..

      $ cmake --build。

  5. 服務器上的 Finder中,轉到Applications文件夾,右鍵單擊Xco​​de並選擇“顯示包內容”。 轉到Contents / Developer / usr / lib文件夾,並將“ libgit2.dylib”文件重命名為“ libgit2.dylibold”或類似文件。

  6. 從libgit2-0.21.0 / build文件夾中獲取新創建的'libgit2.0.21.0.dylib'文件,將其重命名為'libgit2.dylib'並將其復制到/ Applications / Xcode / Contents / Developer / usr / lib服務器上的文件夾。

  7. 重新啟動OS X Server,然后再次從Xcode集成您的bot。

創建機器人時,將添加遠程存儲庫。 您不必在OSX服務器中添加存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM