- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试让 Mercurial 托管在 IIS 7.5 (Win 7 x64) 上,但一直遇到我似乎无法修复的错误。
我在这里遵循了 Jeremy Skinners 的教程:Mercurial on IIS7
我使用的是 hgweb 而不是 hgwebdir,因为我使用的是 Mercurial 1.7.2
我已经安装了 python 并且可以正常工作。我在 http://localhost/hg 为 Mercurial 设置了一个 IIS 应用程序-> 在目录 c:\inetpub\wwwroot\hg 中
我将模板目录放入 c:\inetpub\wwwroot\hg我将 library.zip 文件解压到 c:\inetpub\wwwroot\hg
当我访问该站点时,出现错误 -> File "C:\inetpub\wwwroot\hg\hgweb.cgi", line 15, in from mercurial import demandimport; demandimport.enable() ImportError: No module named 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 tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb('c:\inetpub\wwwroot\hg\hgweb.config')
wsgicgi.launch(application)
这样做之后,我仍然得到同样的错误。我不知道还能做什么。任何帮助将不胜感激。
Edi 1:c:\inetpub\wwwroot\hg 的屏幕截图根据要求:
最佳答案
在过去一周左右的时间里,我一直在为同样的设置而苦苦挣扎。
在我看来,他们最近对 mercurial 在 IIS 中的工作方式进行了一些重大更改,因此上面指向 Jeremy Skinners 教程的链接对于 1.7.2 会有问题
这是一个 more recent link我发现我必须以不同的方式做几件事。
这些说明适用于 1.7.x,如果您使用的是 1.8.x,请务必阅读下面 Ethan 的评论!
我按照 the comments of /contrib/win32/hgwebdir_wsgi.py 中的说明进行操作.
安装 Python 2.6.6
将 Python 添加到系统 PATH(使生活更轻松)
安装 pywin32 v214 (使用Python 安装程序,重要!)(注意这是针对 python 构建的2.6)
安装 isapi_wsgi
download the mercurial source package
提取,然后运行
python setup.py --pure build_py -c -d . build_ext -i build_mo --forcepython setup.py --pure install --force
Copy hgwebdir_wsgi.py from /contrib/win32 to the folder you want to host it from.
Create a file hgweb.config in the folder you're going to host from. Add the contents
[paths]yourRepoName = c:\yourRepoLocation
Edit hgwebdir_wsgi.py to point thehgweb.config. path_prefix is 0 if hgis the root of the website. ifyou're putting it in a vdir 1 deep,then it's 1, etc.
Run python hgwebdir_wsgi.py to createthe isapi dll _hgwebdir_wsgi.dll. Console should print out"installation complete"
Create your app pool in IIS (nomanaged code)
Create your website, with the folderset to the same folder ashgwebdir_wsgi.py
Add Handler of type Module, use "*"as the mapping, select_hgwebdir_wsgi.dll as the executable, select isapimodule as the type,Mercurial-ISAPI as the name (althoughname doesn't really matter)
Edit feature permissions of themodule to allow execute.
web.config (for the previous 2 steps):
<system.webServer>
<handlers accessPolicy="Read, Execute, Script">
<add name="Mercurial-Isapi" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\inetpub\hgweb\_hgwebdir_wsgi.dll" resourceType="Unspecified" />
</handlers>
</system.webServer>
完成这一切后,我能够让它正常工作。
最后一件事,我确实将 MFC71.dll 复制到 windows/system32,尽管我不确定是否有必要 http://python.net/crew/skippy/win32/
我认为我在这里得到的东西和上面链接上的东西之间的主要区别是我安装了“纯 python”mercurial,虽然我是一个完整的 python 新手所以我不确定。我还为 pywin 和 isapi_wsgi 而不是普通的 windows msis 做了“python 安装”。
关于python - IIS 7.5 上的 Mercurial 和 hgweb - python 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4355256/
如果你做一个 hg pull然后是 hg update (或 hg merge ),有没有办法解决这个问题?即:将您的存储库恢复到执行 hg pull 之前的状态? 我相信你可以做到hg update
我有一台带有 ssh 的服务器,我想将其用作中央存储库。但是我不能在上面安装 mercurial。因此,客户端如何在服务器上没有安装 mercurial 的情况下通过 ssh 推送到服务器。 谢谢 最
我们有一个专门的问题跟踪 (Redmine) 机器,它有一个 Mercurial 存储库(称为“Redmine 存储库”)。 Redmine 设置为使用该存储库,据我了解,Redmine 从未对该存储
一个 hg 存储库可以存在于我的本地文件系统上的另一个 hg 存储库中吗? 我正在拉取“sandbox”的 bitbucket wiki,我想知道是否应该将其放置在 repos/sandbox/wik
我有一个项目,我使用 Bitbucket 作为我的 HG 服务器,但我最近发现,作为一个单独的开发人员,我可以免费使用 Fogbugz/Kiln。我想将我的文件移至 Kiln,但我不想丢失我的历史记录
Mercurial 如何判断文件已被修改? 我问的原因是因为当我运行时 hg status它告诉我有几个文件被修改了。 但是,当我运行 hg diff 时没有变化要报告。 我有一个关于为什么会发生这种
我需要获取本地存储库中文件的特定版本/节点的内容,并将其写入临时文件。 我知道可以通过内部Mercurial API进行操作。 有内置命令或扩展名吗? 最佳答案 您可以使用 hg cat : hg c
这两个命令有什么区别(我想回滚到修订版 1): hg update -r 1 hg backout -r 1 --merge (在示例中提示修订为 3) 最佳答案 首先, update -r 1 将撤
我看到 mercurial 有效地压缩了存储库中的文件 (repo/.hg/store/data) 有人知道存储库文件使用哪种压缩吗? 谢谢。 最佳答案 Mercurial 存储库中有两个压缩级别:增
如果 Mercurial does not track file permissions默认情况下,它如何决定它创建的任何文件/目录的权限? 是否使用umask ?如果不是,它有什么用? 我有 rea
我已经阅读了很多关于 Mercurial 及其分支的信息,但是,我仍然是一个版本控制新手。 我目前正在做一个项目,我的任务是开发一个新模块。 我有一个“主”存储库,其中包含项目其余部分的最新代码,以及
尝试运行 hg update 时出现以下错误: abort: Operation not permitted: /var/www/simira/web/public/images/nomination
mercurial 如何处理拆分的文件?如果我创建一个分支并拆分一个文件会发生什么。我可以轻松地从修改原始未拆分文件的另一个分支中提取更改吗? 最佳答案 我只是做了一个小实验。我用一个大文件创建了一个
我想使用hg graft将变更集从一个分支复制到另一个分支。 但是,在变更集中修改的文件已在源分支中重命名(使用hg rename)-在要移植的变更集之前。 当我尝试时,我得到: scanning f
Annotate可以使您看到该行的最新更改,如果该更改是合并,那么我别无选择,只能浏览修订历史记录并查找下一次对其进行修改的情况。 我也尝试过hg grep -l '[contents of line
我有一个小项目,我从集市开始,作为练习bzr的练习。从那以后,我决定选择 Mercurial 。我如何将这个项目迁移到Hg? 最佳答案 我相信您的答案可以在here中找到。 本质上,您只需要运行 $
什么决定分支是否处于非事件状态?是否有客户使用的特定时间段? 我们有很多不活跃的分支。值得我们花时间关闭它们吗? 该文档似乎没有指定如何确定非事件分支: https://www.mercurial-s
假设我创建了一个存储库,添加 x 文件并提交。说大小是 初始提交后的 Mb。 有什么方法可以估计存储库在一年内会有多大? 如果代码行数增加了 10%,存储库会相应增长吗? 提交、分支、标签等的数量如何
我正在使用 Mercurial(特别是 Windows 上的 TortoiseHg)对 VBA 代码进行版本控制。任何尝试过这个的人都知道,只要在项目中的任何地方更改了该变量的任何声明(无论范围如何)
不幸的是,我已经清理了我的 Mercurial 货架,忘记了我需要进行一些更改。我有定期的文件系统备份,但不知道 Mercurial 在哪里存储搁置文件。有人可以告诉我在哪里看吗? Mercurial
我是一名优秀的程序员,十分优秀!