2011-06-30 60 views
5

我是在DVCS初學者(我從SVN世界是),現在我掌握我自己的本地回購,我想建立一個遠程計算機(亞馬遜EC2)來保存我的Web文件,所以我可以輕鬆更新沒有FTP或Web應用程序的一些八九不離十的事情如何使Hg/Git成爲遠程回購?

我想最終使用:

hg push http://hg.domain.com/webserver/hello 

或Git的

git push myAmazon master 

我有什麼在我的遠程服務器來配置(安裝汞/ GIT)使用init做的文件夾的回購和我應該是下一個?


也許我並不清楚以上回答100%,所以這裏是一個簡單的問題

我想用的Git/汞取代FTP上傳push,我該如何做到這一點?

所以,讓我們想象一下這樣的場景:

C:\Inetpub\wwwroot\mybrandNewWebApp是根託管在IIS站點的(這是遠程計算機,例如:在亞馬遜EC2),該目錄在我開始了倉庫使用git init/hg init

如何從我自己的筆記本電腦配置此存儲庫我可以通過push remote來「上傳我的更改」?

如何將此存儲庫配置爲可到達和可推出?


從閱讀所有評論的問題?

我應該創建其他目錄作爲回購和使用一個很好的推我可以運行一個腳本,實際上會更新網站的根目錄?

+0

即你想使用VCS來部署你的網站 –

+0

你使用什麼樣的網站技術?例如,您是否需要構建代碼?你有單元測試嗎? –

+0

@Lasse V. Karlsen ** IIS **意味着Windows Server,我可以很容易地運行'build.exe'並從命令行運行單元測試,如果需要的話,我只是不知道如何將所有東西都設置爲我的回購作爲一個遠程:/ – balexandre

回答

1

對於水銀,你需要建立hgweb是水銀自帶的,至少在源版本的Web服務器。

的步驟是(可能是不正確的順序):

  1. 設置IIS服務器
  2. 上下載的水銀源,並按照該文件在您設置IIS應用程序,以提供一個教程
  3. 配置IIS運行Python程序(水銀hgweb是一個Python CGI腳本)
  4. 配置hgweb爲您的主機需要

在網絡上有很多教程,它們都沒有100%完整,因爲如果你一步一步地跟着它們,它們都能正常工作,但只需少量修補就可以工作。

這裏有一對夫婦:


編輯:我的回答將告訴您如何設置,你可以推到水銀的Web服務器。因爲你的目標是更新通過推出更改Web服務器,還有其他選擇:

我有相同類型的設置,但我所做的是以下幾點:

  1. 我創建了一個在其中一個託管公司在線帳戶(我使用Kiln,但其他人可以輕鬆完成)
  2. 然後,我配置了我在那裏設置的存儲庫,以便在我推送到存儲庫時對我的Web服務器執行ping操作。基本上,當我推動時,Kiln服務器會在我自己的服務器上調用一些cgi腳本,並提供一些信息
  3. 我的cgi腳本被ping通,然後在本地克隆中執行正常的hg pull -u命令,然後ROBOCOPY反映一切(除了一些調試文件和目錄.hg)到主網站文件夾

這意味着:

  1. 我沒有託管自己的倉庫
  2. 我做不需要經歷設置我自己的Mercurial/Git的麻煩erver
  3. 我並不需要處理(讀:擔心),其設置的安全
  4. 我仍然可以一鍵更新網站功能
+0

問題:你的步驟是安裝並運行Mercurial作爲Web?我只想做一個公共網站,我在該服務器上託管一個存儲庫,所以從我的計算機上,我可以「推送」我的提交併更新Web應用程序......如FTP,但使用Hg/Git。 – balexandre

+0

是的,您需要安裝並運行Mercurial Web服務器cgi應用程序腳本來執行此操作(對於Mercurial)。我不知道您會爲Git做什麼。 –

+0

我會用另一個選項編輯答案。 –

1

如果服務器上運行ssh,你可以在他們的ssh協議中使用mercurial和git。

你甚至可以在服務器上創建存儲庫這樣:

hg clone ~/myrepo ssh://[email protected]/hg/clone 
+0

這可能是路徑,我將閱讀更多關於SSH協議的信息,並瞭解如何在遠程服務器中啓用該協議。 – balexandre

+0

@balexandre:我以前在Cygwin的Windows機器上安裝了SSH(服務器,sshd),因此確實可行。但是,我不知道它是否適用於Amazon EC2 Windows機器(這似乎是您的目標)。但這是一個單獨的問題。 ;) – Macke

0

您可以同時使用水銀和Git爲宗旨。如果您從計算機上推送某些東西,該工具會將新數據複製到遠程服務器。

問題是數據只是位於遠程存儲庫中,但您希望它位於Web服務器可以看到的位置,即您缺少「更新」步驟(將數據從存儲庫複製到Web服務器的文件系統)。

爲了更清楚:

  • commit從本地文件系統中的數據移動到本地資源庫。
  • push移動存儲庫之間的數據(忽略什麼是文件系統)
  • update/pull更新文件系統。你必須在你的網絡服務器上這樣做。

我的建議是編寫一個小腳本,每小時左右運行hg updategit pull。在Windows中將該腳本安裝爲任務。

+0

我仍然在做頭腦風暴,因此我可以檢查要做什麼步驟才能使我的存儲庫「可達到和可推出」,但是當我處於實施點時,這是個好主意。 Thxs。 – balexandre