如何让Hg / Git成为远程回购?

时间:2011-06-30 06:00:05

标签: git mercurial repository

我是DVCS中的初学者(我来自SVN世界)现在我掌握了自己的本地仓库,我想设置一台远程计算机(Amazon EC2)来保存我的Web文件,所以我可以轻松更新Web应用程序,无需FTP或某些事情

我想最终使用:

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

或git

git push myAmazon master

我必须在远程服务器(安装Hg / Git)中配置什么才能使用init创建一个文件夹以及下一步应该是什么?


也许我没有100%明确上述答案,所以这是一个简单的问题

  

我想使用 Git / Hg push替换 FTP上传,我该如何做到这一点?

所以,让我们想象一下这个场景:

C:\Inetpub\wwwroot\mybrandNewWebApp 是IIS中托管的网站的根(这是一台远程计算机,例如:在Amazon EC2中),在此目录中,我使用{{1启动了一个存储库} / git init

如何配置此存储库,我可以在自己的笔记本电脑上hg init进行“上传更改”?

如何配置此存储库为可访问和可推送?


阅读所有评论的问题?

我是否应该创建其他目录作为repo并在推送时使用我可以运行一个实际更新网站根目录的脚本?

3 个答案:

答案 0 :(得分:1)

对于Mercurial,您需要设置hgweb Mercurial附带的Web服务器,至少在源版本中。

步骤(可能是不正确的顺序):

  1. 在您的服务器上设置IIS
  2. 下载Mercurial源代码,并按照您设置的IIS应用程序中可用文件的教程进行操作
  3. 配置IIS以运行python程序(Mercurial hgweb是一个python cgi脚本)
  4. 根据您的托管需求配置hgweb
  5. 网上有很多教程,没有一个是100%完成的,因为如果你一步一步地跟着它们一切都会工作,但只需要少量的修补就可以了。

    这是一对夫妇:


    编辑:我的回答告诉您如何设置可以推送到的Mercurial Web服务器。由于您的目标是通过推送更改来更新Web服务器,因此还有其他选择:

    我有相同类型的设置,但我所做的是以下内容:

    1. 我在其中一家托管公司创建了一个帐户(我使用Kiln,但其他人很容易做到)
    2. 然后,每当我推送到存储库时,我都会将我在那里设置的存储库配置为ping我的Web服务器。基本上,当我推送时,Kiln服务器将使用一些信息在我自己的服务器上调用cgi脚本
    3. 我的cgi脚本然后在本地克隆中执行正常的hg pull -u命令,然后执行ROBOCOPY将所有内容(除了一些调试文件和.hg目录)镜像到主Web网站文件夹
    4. 这意味着:

      1. 我不必托管自己的存储库
      2. 我不需要经历设置我自己的Mercurial / Git服务器的麻烦
      3. 我不需要处理(阅读:担心)该设置的安全性
      4. 我仍然可以获得推送更新网站的功能

答案 1 :(得分:1)

如果你在服务器上运行ssh,你可以使用mercurial和git和他们的ssh协议。

您甚至可以通过以下方式在服务器上创建存储库:

 hg clone ~/myrepo ssh://user@server/hg/clone

答案 2 :(得分:0)

您可以同时使用Mercurial和Git。如果从计算机中推送某些内容,该工具会将新数据复制到远程服务器。

问题是数据只是位于远程存储库中,但是您希望它位于Web服务器可以看到它的位置,即您缺少“更新”步骤(将数据从存储库复制到Web中)服务器的文件系统)。

更清楚地说明:

  • commit将数据从本地文件系统移动到本地存储库。
  • push在存储库之间移动数据(忽略文件系统中的内容)
  • update / pull更新文件系统。您必须在Web服务器上执行此操作。

我的建议是编写一个每小时左右运行hg updategit pull的小脚本。将该脚本安装为Windows中的任务。