2011-02-12 48 views
1

我使用以下指南設置了Gitosis的一個git回購我的Ubuntu 10.04服務器上: http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way混帳:克隆Gitosis的管理員回購本地

它的工作原理非常愉快,我可以克隆的配置,我的Ubuntu 10.10桌面電腦,並在那裏提交更改。

那好吧,但我做了我在服務器上的大部分實際編碼。所以我需要在本地克隆配置/ gitosis-admin.git回購和其他回購協議。

git clone --local file:///home/git/repositories/gitosis-admin.git give me: fatal:'/home/git/repositories/gitosis-admin.git'似乎不是一個Git倉庫 致命:遠程端掛機意外

我說我的服務器用戶組的git,並得到: 致命:未能打開「/home/git/repositories/gitosis-admin.git/objects」:權限被拒絕

然後我嘗試在服務器上創建一個公鑰並將其添加到密鑰admin repo中,並在配置中將(用戶)和(用戶)@(主機名)用戶名添加到: 混帳混帳克隆@本地:Gitosis的-admin.git或混帳混帳克隆@(主機名):Gitosis的-admin.git 兩者問我要的git @(主機名)的密碼

當我回到我的桌面,並檢查了Gitosis的管理員回購,gitosis.conf的列表: [Gitosis的]
[組Gitosis的管理員]
可寫Gitosis的管理員
成員=(desktopUN)@(desktopHostname)(serverUN)@( serverHostname)

但在服務器上,如果我將根目錄放入/home/git/repositories/gitosis-admin.git/和cat gitosis.conf,它會列出 [Gitosis的]
[組的gitosis管理員]
寫的gitosis管理員
成員=(desktopUN)@(desktopHostname)

我不能讓我解決這個頭,我該如何設置此得到它按我想要的方式工作。在這一切背後,有一些小白鼠咳嗽的可能性很大,但我花了5個小時試圖讓它現在起作用,並花了我2分鐘來建立一個svn回購站。所以我等得不耐煩了..

感謝

回答

1

您需要可以在服務器上添加用戶的SSH公鑰的gitosis或從桌面上的SSH私鑰複製到用戶的服務器上,用它。

對不起,我有點撇清了這個問題。你是如何安裝gitosis的?我記得在安裝過程中存在一個常見問題,gitosis-admin repo中的必需鉤子未設置爲可執行。因此在推送到時它從不更新配置。

此外,您應該只能通過SSH訪問通過gitosis託管的回收站,而不是通過本地文件系統訪問,但您似乎已經計算出了這部分。

此外,如果您不知道,gitosis是維護和不贊成使用gitolite

+0

我通過克隆GIT中安裝了它://eagain.net/gitosis.git,手動添加用戶GIT中,然後須藤-H -u GIT中Gitosis的-INIT aktivb 2011-02-13 10:19:58

+0

你是對的。 home/git/repositories/gitosis-admin.git/hooks/post-update沒有設置爲可執行文件。把所有東西都整理出來 – aktivb 2011-02-13 10:23:10

1

我想給這個問題一個詳細的答案,因爲我只需要使用gitosis-admin本地克隆來讓其他人的安裝正常工作。我認爲其他用戶可能會來這裏尋找幫助,找出如果您需要編輯gitosis-admin,但只有本地root訪問repos所在文件系統的權限,該怎麼辦。如果這就是你如何到達這裏,你的直覺是好的,因爲你可以克隆和本地編輯gitosis-admin庫。然而,爲了使所有的工作都能正常工作,你必須小心你的工作方式。以下是具體步驟:

前提條件:

  • 你是根。
  • 您想給$USER gitosis-admin訪問權限; $USER是一個有效的用戶。
  • gitosis-admin存儲庫位於$PATH。 (在Ubuntu上,這通常是/srv/gitosis/repositories/gitosis-admin.git
  • $PATH歸用戶「gitosis」所有。

步驟:

  1. 如果他們不已經有一個,爲你產生想給Gitosis的管理員權限的用戶密鑰對。
    sudo -H -u $USER ssh-keygen
  2. 將gitosis-admin回購的本地克隆作爲gitosis用戶。
    sudo -H -u gitosis git clone $PATH
  3. 添加新的公鑰。
    sudo -H -u gitosis cp ~$USER/.ssh/id_rsa.pub ./gitosis-admin/keydir/$USER.pub
  4. 根據需要編輯gitosis-admin conf。
    sudo -H -u gitosis nano ./gitosis-admin/gitosis.conf
  5. 提交作爲gitosis用戶。
    sudo -H -u gitosis git commit -am "Adding $USER" ./gitosis-admin
  6. 推送作爲gitosis用戶。
    sudo -H -u gitosis git push ./gitosis-admin
  7. 運行更新後的掛鉤作爲gitosis用戶。
    sudo -H -u gitosis GIT_DIR=$PATH $PATH/hooks/post-update