2016-04-25 90 views
0

我安裝了gerrit。

當通過gerrit Web UI創建項目時,項目反映在$GERRIT_SITE/git文件夾中。

例如,如果在gerrit上創建項目試用,則在$GERRIT_SITE/git文件夾中創建trial.git文件夾。

但是,當我嘗試在$GERRIT_SITE/git/trial.git文件夾中運行任何git命令,如下,我得到以下錯誤:

$ git status 
fatal: This operation must be run in a work tree 

我不知道如何去了解這一點,就需要一些指導。

+0

你的目標是什麼?不要在服務器上玩回購,特別是當你Gerrit同時運行時。這很容易導致數據損壞,如果你修改了repo,Gerrit也會修改。 – StephenKing

+0

我想運行一個服務,它使用提交的commit-id,如果我可以將這個.git目錄作爲git的工作目錄,就會產生提交。我不知道這是可取的還是可能的? – nidHi

+0

好的,我編輯了我的答案。掛鉤可能對你有用。這是關鍵,當我們訪問裸回購。但是,也許還有其他選擇可以滿足您的需求,即REST API或SSH Stream Events。 – StephenKing

回答

1

原因是你在磁盤上找到的是一個裸露的存儲庫,沒有工作樹(即特定分支的文件)。這對於Git服務器來說是完全正常的,一旦克隆了存儲庫,您在.git/目錄中找到相同的內容。

編輯 可以與這些裸露的回購協議的服務器端工作,當你指定回購的路徑作爲GIT_DIR環境變量參數:

GIT_DIR=/var/gerrit/review/git/trial.git/ git log --quiet --pretty=medium 

這是ESP。當使用Gerrit Hooks做一些事情時,當一個新的變化被合併等等時很有幫助。

+0

是的。它的確表現出相同的行爲。如果可能的話,我一直在尋找一種方式,以獲得與將項目克隆到本地計算機時相同的行爲,即在目錄中初始化git以使其成爲我的工作目錄。那可能嗎? – nidHi

+0

謝謝你......那有效.. :) – nidHi