我一直在寻找关于如何获得hgwebdir在IIS上工作的体面的指示,但我还没有find很多值得。
Mercurial wiki上有这个“一步一步” ,但不是很好。 还有这个和这个 ,但是我再也找不到好的步骤来引导那些开始。
我只是不得不安装一个新的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文件在哪里):
配置=“C:\ Mercurial \ hgweb.config”
另外,请查看Jeremy Skinners的博客文章 。 这是有点过时,但有一些额外的好的步骤,如设置网址重写为更干净的URL。
从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的博客文章是一个好的开始,但是对于我之后的内容来说,这还不够详细。
我做了一个4部分的博客文章,让你从头开始使用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正在工作的好时机。 在名为test.cgi的新的Hg文件夹中创建一个文件。 粘贴下面的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/
: 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
使用mercurial来克隆mercurial repository:
hg clone https://www.mercurial-scm.org/repo/hg/
您将在顶层找到hgwebdir.cgi。 它应该像任何其他的CGI脚本安装。
在过去一周左右,我一直在为这个1.7.2版本而努力,为了让它工作起见,我不得不做了与上面的文章略有不同的事情。
在这里发布,因为谷歌不断把我带回这里….
完整的说明贴在这里
我遵循这些指令的组合(在源代码中)
主要的区别是,我必须做“纯python”安装mercurial,否则会抱怨缺少dll,我发现python和isapi-wsgi使用“python安装程序”是非常重要的。 (也许这对于有经验的Python开发者是显而易见的,但是我是一个Python新手,所以对我来说是新闻)
希望这有助于某人,我不只是做东西了(我可能是,就像我说的,蟒蛇新手)
这本红皮书包含了比我在其他地方见过的更好的一般指导。 他们不是特定的IIS,但他们是相当不错的:
http://hgbook.red-bean.com/read/collaborating-with-other-people.html#sec:collab:cgi
我遇到一个“…无法加载模块…”类型的错误,并在一些阅读后,我的关键是忽略Mercurial文件夹中的Library.zip文件,而是使用C:\ Program Files(x86)\ TortoiseHg文件夹。
我在本指南中发现的第6条提示:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html
希望这可以帮助别人…
你可以试试HgLab 。 这不完全是hwewebdir; 而是一个纯粹管理的Mercurial实现,具有推拉服务器和存储库浏览器。