2012-03-23 46 views
0

我是新來DVCS,但我終於設法弄清它是如何工作的,我想首先檢查是否在我的工作流程上面的步驟是合乎邏輯的:如何在遠程服務器上的hg克隆後設置權限?

步驟:在本地做的:hg init,加並修改文件hg add .,hg commithg push path_to_my_ repo;然後去遠程服務器上,並做hg init,hg clone path_to_my_ repohg update

(克隆直接在dev.domain.com作爲一個目錄中的回購內容提取,這是OK?)

問題:我得到的遠程服務器上我的文件,他們都在那裏,但我無法通過我的FTP/SFTP客戶端編輯它們中的任何一個?我無法編輯這些添加的文件夾中的任何內容,因此它必須是權限問題。

我已經試過LS -al proj1 /:

drwxr-xr-x 3 root root 4096 Mar 23 15:26 ./ 
drwxr-x--- 18 moove nobody 4096 Mar 23 15:26 ../ 
drwxr-xr-x 3 root root 4096 Mar 23 15:26 .hg/ 
-rw-r--r-- 1 root root 40272 Mar 23 15:26 wp-app.php 

和chown根:根proj1但這並沒有解決問題。

有什麼建議嗎?

+0

你是否以root登錄?當前文件夾中的所有文件都由root擁有... – 2012-03-23 18:41:10

+0

Erm,no。我有一個cPanel安裝,無法找到一種方法來創建一個FTP帳戶(pureftpd),而無需創建一個cPanel帳戶,這將使賬戶所有者只能訪問他的目錄,這是沒有道理的;使用root密碼進行ftp連接不起作用。你的問題讓我意識到什麼是錯的,那麼我該如何更改該特定文件夾的組/用戶呢? – Chris 2012-03-23 21:47:18

+0

請讓我們知道您是否使用http:或ssh:URL推送到「遠程服務器」。它使所有的差異。 – 2012-03-24 00:42:57

回答

1

您的示例工作流程不正確。
通過「遠程服務器」,你的意思是一箇中央服務器爲您的存儲庫,每個人都可以推/拉,更正嗎?

如果是的話,那麼這部分是沒有必要的:

然後去遠程服務器上做hg inithg clone path_to_my_ repohg update

你應該建立在中央儲存庫服務器一開始(可能包括hg init來創建它,但不包括其餘)。
- >那麼每個人都可以推動並拉開它,就是這樣。 之後,你不必在服務器上做任何事情(比如通過FTP編輯文件,就像你嘗試過的那樣),並且在每次推動後肯定不是hg update
hg update會在服務器上的存儲庫,你如果只想推,然後從倉庫拉不需要工作目錄)

設置服務器還包括權限(不一定文件權限服務器上的 - 更像是誰在某個存儲庫上具有推/拉權限)。

有關如何設置Mercurial服務器的不同方式的概述,請參閱Mercurial wiki中的Publishing Repositories
(我不能在這方面幫助你直接 - 我使用水銀每天,但我不知道如何建立一個水銀服務器,更不用說在Unix)


編輯:

老實說,我不確定我是否瞭解您的工作流程。
爲什麼「SSH服務器,克隆創建的回購」的東西?我不明白爲什麼要在同一臺服務器上再次克隆中央存儲庫。

通常的基本工作流程如下所示:
您在本地工作,編寫代碼並將其提交到本地存儲庫。
在某個地方,你有一箇中央存儲庫用於你的項目(不論是在Github/Bitbucket還是在你自己的服務器上 - 這就是我說的「中央服務器」的意思)。提交之後,您將推送到該目錄,現在您的更改位於中央存儲庫中。
您的同事也是這樣做的,所以您可以再次從中央存儲庫中獲取您的同事所做的更改(並且他們也可以獲得您的更改)。

然後你就這樣說:

我們會拉(克隆第一次)上的文件,一個子域(DEV)第一,臨行前的每一天,當項目完成後,我們會做同樣的在服務器上通過克隆回收服務器上的東西

這只是爲了部署您的項目,是否正確?當我第一次讀到你的問題時,我想我誤解了。
因此,克隆到「dev」子域不是爲了有一個更多的存儲庫推/拉,而僅僅用於部署測試環境。對?
如果是,那沒關係。但爲了做到這一點,您不必在中央存儲庫所在的服務器上使用FTP/SSH。
您可以在開發服務器上創建一個新的存儲庫(hg init),然後定期從中央存儲庫hg pullhg update更新開發服務器上的工作副本。這一切都在開發服務器上,不需要在中央存儲庫所在的服務器上執行任何操作。

+0

對不起,我還不夠明確。我不是說中央服務器,因爲我是新手,這對我們(其他開發者)來說太過分了。這個想法是:開發人員將在本地啓動,將文件推送到回購站(git或bitbucket),然後SSH服務器,克隆創建的回購站。我們將首先在子域(dev)上提取(克隆)文件,每天離開前,當項目結束時,我們會在服務器上通過克隆實時服務器上的repo來做同樣的事情,在我們之後將創建一個cPanel帳戶。是否有意義?在這種情況下,我的工作流程是否有意義? – Chris 2012-03-23 21:58:49

+0

您的更新很有意義,謝謝。是的,我/我們將在本地啓動('hg init/hg add。/ hg commit/hg push')並推送到中央存儲庫。在同一個項目上工作的兩個或兩個以上人員的機會現在非常小,直到我們完全理解系統的工作方式,並且讓中央存儲庫成爲我們熟悉的良好開端。然後,是的,我們將首先在測試環境(dev)('hg init/hg pull/hg update')中部署,繼續在本地工作,推送到中央倉庫,當工作完成時,init/pull /在現場服務器上更新。 – Chris 2012-03-26 08:42:48

相關問題