我正在尝试设置由Windows Server 2003下的IIS托管的Mercurial存储库.在这篇文章之后,我安装了Python 2.5.4.4和Mercurial 1.3,设置了虚拟目录,解压缩了library.zip并创建了hgwebdir.config.
但是,当我尝试打开http://hostname/hg/hgwebdir.cgi时,我收到一条错误"指定的CGI应用程序由于没有返回一组完整的HTTP标头而行为不端."我做得最好:
还有一件事是当我要求不存在的脚本文件(例如/hg/inexist.cgi)时,我有同样的错误.什么都没有帮助!
我试图让Mercurial在IIS 7.5(Win 7 x64)上托管并继续遇到我似乎无法解决的错误.
我在这里关注了Jeremy Skinners教程:IIS7上的Mercurial
而不是hgwebdir,我使用hgweb,因为我正在使用Mercurial 1.7.2
我安装了python并正在工作.我在目录c:\ inetpub\wwwroot\hg中的http:// localhost/hg - >上为Mercurial设置了一个IIS应用程序
我将templates目录放入c:\ inetpub\wwwroot\hg我将library.zip文件解压缩到c:\ inetpub\wwwroot\hg
当我访问该网站时,我收到一个错误 - >文件"C:\ inetpub\wwwroot\hg\hgweb.cgi",第15行,来自mercurial import demandimport; demandimport.enable()ImportError:没有名为mercurial的模块".
在搜索此错误时,我找到了以下答案:https://stackoverflow.com/questions/2123798/
根据接受的答案,我改变了我的hgweb.cgi,看起来像这样:
#!c:/python/python26/python.exe
#
# An example hgweb CGI script, edit as necessary
# See also https://www.mercurial-scm.org/wiki/PublishingRepositories
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"
# Uncomment and adjust if Mercurial is not installed system-wide:
import sys; sys.path.insert(0, "c:\inetpub\wwwroot\hg")
# Uncomment to send python …Run Code Online (Sandbox Code Playgroud) 我已经在II7 7上运行了hgweb(在Windows Server 2008上).Web界面工作,我可以在那里查看,拉取和克隆存储库.但我不能推,这样做在"搜索更改"后立即给我一个502错误.使用--debug将最后几行显示为:
sending unbundle command
sending 622 bytes
HTTP Error: 502 (Bad Gateway)
Run Code Online (Sandbox Code Playgroud)
我正在使用TortoiseHG进行推送,但使用mercurial命令行时结果相同.
我按照这里的教程:http://www.sjmdev.com/blog/post/2011/03/30/setting-mercurial-18-server-iis7-windows-server-2008-r2.aspx来设置hgweb.
我在Windows 2003服务器(IIS 6,Python 2.6.6)上运行hgweb.cgi,并且在我最近从mercurial 1.6升级到1.7和1.8(客户端和中央服务器)之前一直没有问题.我在服务器上有一个包含所有中央存储库的目录,该目录在hgweb.config文件中设置为"集合".即使在服务器上升级到mercurial 1.8之后,hgweb.cgi也只会列出使用mercurial 1.6或更早版本创建的存储库.未列出使用1.7或1.8创建的任何存储库.尝试直接访问1.7或1.8存储库会导致显示以下错误消息:
处理您的请求时发生错误:
要求'dotencode'不受支持
看起来这个问题与使用mercurial 1.6的hgweb.cgi有关,但是由于我卸载1.6并在服务器上安装了1.8,这怎么可能呢?python目录中的某个库文件是否需要更换/升级?我错过了什么?
我正在使用webapp安装1.8后创建的mercurial 目录中的文件,只根据需要修改hgweb.cgi和hgweb.config.
我是DVCS 的初学者(我来自SVN世界),现在我掌握了自己的本地仓库,我想设置一台远程计算机(Amazon EC2)来保存我的Web文件,这样我就可以轻松更新网络应用程序没有FTP或某些东西
我想最终使用:
hg push http://hg.domain.com/webserver/hello
Run Code Online (Sandbox Code Playgroud)
或者git
git push myAmazon master
Run Code Online (Sandbox Code Playgroud)
我需要在远程服务器中配置什么(安装Hg/Git)使文件夹成为回购使用init,下一步应该是什么?
也许我没有100%清楚上面的答案,所以这是一个简单的问题
我想用Git/Hg替换FTP上传,我该怎么做呢?
push
那么,让我们想象一下这种情况:
C:\Inetpub\wwwroot\mybrandNewWebApp 是 IIS中托管的站点的根(这是一台远程计算机,例如:在Amazon EC2中),在此目录中,我使用git init/ 启动了一个存储库hg init.
如何从我自己的笔记本电脑配置这个存储库我可以执行push remote"上传我的更改"?
如何将此存储库配置为Reachable和Pushable?
阅读所有评论的问题?
我应该创建其他目录作为repo并使用良好的推送我可以运行一个实际更新网站根目录的脚本吗?