我一直在寻找关于如何在IIS上运行hgweb的不错的指导,但是我没有发现太多的价值。
Mercurial Wiki上有此“逐步说明”,但这不是很好。还有这个和这个,但同样,我找不到好的步骤,导致了那些上手哪里。
Answers:
昨天我只需要安装一个新的Mercurial实例,这是1.7的更新说明:
hg clone https://www.mercurial-scm.org/repo/hg/
创建一个文件夹,它将成为您的Web应用程序文件夹。您将需要将三件事复制到该文件夹中:
您需要确保在IIS中设置了Python。
您还需要创建一个名为“ hgweb.config”的文件,其内容类似于以下内容。文件中的路径必须是驱动器上要存储Mercurial存储库的位置:
[集合]
c:\ Mercurial \ repos = c:\ Mercurial \ repos
编辑hgweb.cgi文件,并将其设置hgweb.config路径的行更改为以下内容(无论hgweb.config文件在哪里):
config =“ C:\ Mercurial \ hgweb.config”
另外,请查看Jeremy Skinners博客文章。这有些过时了,但是还有一些额外的好步骤,例如为更干净的URL设置URL重写。
maxAllowedContentLength
,maxRequestLength
但似乎都没有效果!
自Mercurial 1.5.2发布以来,这些教程似乎无法正常运行。一方面,hgwebdir.cgi已被删除,现在已替换为hgweb.cgi。
最适合我的说明是在eworldui.net上:
这些说明适用于IIS 7或更高版本。如果您是在IIS 6上进行设置的,我会写一些针对Win2k3和IIS 6.0的类似说明:
http://partialclass.blogspot.com/2010/05/setting-up-mercurial-server-on-win2k3.html
更新: 完成这项工作后不久,我了解到BitBucket更改了其定价方案,以提供免费,无限制的私人托管:https://bitbucket.org/。当我最初从事该项目时,我会心跳加速。
我发现吸血鬼基础(Vampire Basic)上的博客文章是一个不错的开始,但是对于我所追求的内容,它没有提供足够的详细信息。
我在博客上做了一个四部分的文章,让您从头开始使用IIS并开始运行,包括Active Directory集成,为推/拉设置安全权限,模板的自定义,我会在这里重现它,但是它相当长期以来,Mercurial确实设计为在Linux / Apache上托管:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html
这里有一个相当不错且全面的教程:http : //vampirebasic.blogspot.com/2009/06/running-mercurial-on-windows.html
在为获得IIS6上的hgwebdir.cgi设置进行了大量研究之后,我做了以下工作。它基于以下站点:
您需要在服务器上安装以下内容:
对我来说,步骤是:
现在是测试Python是否正常工作的好时机。在新的Hg文件夹中创建一个文件test.cgi。粘贴以下python代码:
print 'Status: 200 OK'
print 'Content-type: text/html'
print
print '<html><head>'
print ''
print '<h1>It works!</h1>'
print ''
print ''
打开浏览器到您的站点,例如http://localhost/hg/test.cgi
您应该看到“它有效!” 在浏览器中。
接下来,让hgwebdir工作。
https://www.mercurial-scm.org/repo/hg/
application = hgwebdir('hgweb.config') wsgicgi.launch(application)
至
application = hgwebdir('c:\inetpub\wwwroot\hg\hgweb.config') wsgicgi.launch(application)
现在是测试的好时机。在浏览器中转到以下URL,http://localhost/hg/hgwebdir.cgi
[collections] \\server\share$\Hg\ = \\server\share$\Hg\ [web] allow_push = * push_ssl = false
这些都是我的首选项,例如,我们的存储库位于\\ server \ share $ \ Hg的子目录中。该Web应用程序将通过浏览器在登录用户的权限下运行,因此他们将需要对该共享具有读/写权限。
最后一步是允许长连接,这可能在您第一次克隆存储库时发生。运行以下命令以将超时增加到50分钟:
cd \inetpub\AdminScripts\
cscript adsutil.vbs GET /W3SVC/CGITimeout
cscript adsutil.vbs SET /W3SVC/CGITimeout 3000
在过去的一周左右的时间里,我一直在为1.7.2设置此设置,为了使其能够正常工作,我不得不做与上面的文章略有不同的事情。
在这里发帖是因为Google一直将我带回这里。
完整说明发布在这里
主要区别在于,我必须进行Mercurial的“纯python”安装,否则会抱怨缺少dll。我发现为pywin和isapi-wsgi使用“ python安装程序”很重要。(也许这对经验丰富的Python开发人员是显而易见的,但是我是python新手,所以对我来说是新闻)
希望这对某人有帮助,而我不仅仅是在编造东西(就像我说的那样,我可能是python newbie)
与我在其他地方见过的相比,这本《红皮书》包含了更好的一般说明。它们不是特定于IIS的,但是它们相当不错:
http://hgbook.red-bean.com/read/collaborating-with-other-people.html#sec:collab:cgi
我遇到了“ ...无法加载模块...”类型错误,经过一番阅读之后,对我来说,关键是忽略Mercurial文件夹中的Library.zip文件,而使用C:\中的文件。程序文件(x86)\ TortoiseHg文件夹。
我在本指南中发现的提示是#6:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html
希望这可以帮助某人...
您可以尝试HgLab。这不完全是hgwebdir;相反,它是带有推拉服务器和存储库浏览器的纯托管Mercurial实现。