阅读了Mikko的答案后,我为自己安装写下了一些笔记。我的设置是一个“非保护和开放”的仓库,我的团队成员可以在Windows 2008服务器上使用。
1. 安装Python。
我使用的Python版本是Python 2.6.2,使用了Windows x86 MSI Installer。
- 为所有用户安装。
- 安装到C:\Mercurial\Python。
- 使用默认功能选项。
2. 安装MinGW。
我使用的是MinGW 5.1.4版的Minimalist GNU for Windows。
- 安装MinGW-5.1.4.exe。
- 选择下载和安装选项。
- 选择当前软件包选项以进行安装。
- 对于要安装的组件,请选择“Minimal”选项。
- 安装到C:\Mercurial\MinGW。
3. 修改您的路径。
此时,您需要添加环境路径的位置。
- 将'C:\Mercurial\Python26;C:\Mercurial\MinGW\bin'添加到路径中(顺序很重要)。
4. 安装Mercurial。
我使用的是稳定分支中最新版本的mercurial,没有使用二进制文件,而是使用了源代码。我想自己编译mercurial,以便它可以与我安装的任何Python版本一起工作,因此我不必担心任何兼容性问题,这是我发现其他安装方法最大的挑战。获取源代码的最简单方法是通过下载“zip”文件。
Mercurial稳定版发布
- 将Zip文件提取到C:\Mercurial\Source。
- 在命令提示符下构建源代码。
python setup.py build --force -c mingw32
python setup.py install --force --skip-build
5. 修改您的路径。
您需要在环境路径中插入另一个位置以进行'hg'命令。
- 将'C:\Mercurial\Python26\Scripts;C:\Mercurial\Python26;C:\Mercurial\MinGW\bin'添加到路径中(顺序很重要)。
6. 创建您的配置文件。
如果您要在此服务器上本地提交任何内容,需要设置默认用户名。
- 创建文件'"C:\Documents and Settings{username}.hgrc"'
[ui]
editor = Notepad
username = your_name
6. 测试安装。
打开一个新的命令窗口,并使用 'hg debuginstall' 进行验证。您应该会看到以下信息。
Checking encoding (cp1252)...
Checking extensions...
Checking templates...
Checking patch...
Checking commit editor...
Checking username...
No problems detected
7. 设置Web目录。
- 创建目录'C:\Mercurial\Web'
- 将hgwebdir.cgi文件从'C:\Mercurial\Source'复制到'C:\Mercurial\Web'
8. 为集中式存储库配置IIS7。
我使用了DefaultAppPool,它使用.Net 2.0、Pipeline=Integrated、Identity = ApplicationPoolIdentity。
- 确保在IIS7中可用CGI功能。
- 控制面板/程序/Windows功能/IIS/App开发功能/CGI
- 在所需的网站上添加应用程序。
- 别名=Mercurial -- 物理路径=C:\Mercurial\Web
- 在应用程序上选择HTTP模块并添加一个新的模块映射。
- 请求路径=*.cgi,模块=CgiModule,可执行文件=C:\Mercurial\Python26\python.exe %s,名称=Mercurial。
- 当提示添加条目到ISAPI和CGI限制列表时,选择是。
9. 测试您的Web设置。
现在,您应该能够浏览http://localhost/Mercurial/hgwebdir.cgi并查看空的存储库列表。
10. 为友好的URL配置IIS7
我不喜欢不友好的URL,这一步允许我们将URL重定向到更友好的内容。安装IIS的URL Rewrite Moduel 1.1扩展程序。
- 在IIS管理器功能视图中对Mercurial IIS应用程序进行选择,并选择URL Rewrite组件,然后安装一个新规则。
- 选择添加规则,然后选择模板“带有重写映射的规则”。规则操作=重写,指定重写映射=Mercurial
- 添加映射条目。原始值='/Mercurial/Repo',新值='/Mercurial/hgwebdir.cgi'
11. 创建Mercurial存储库
您现在可以创建一个测试仓库。
- 创建目录C:\Mercurial\Repository并确保IUSR帐户具有写入该目录的权限。(如果是域帐户,则更像是IUSR_{计算机名称}。)
- 创建文件C:\Mercurial\Web\hgweb.config以列出存储库。
[paths]
/ = C:\Mercurial\Repository\**
- 添加目录C:\Mercurial\Repository\Test并使用'hg init'初始化存储库
** 如果您现在想要能够无需ssl进行推送,请在存储库的.hg目录中创建一个名为hgrc的文件,并添加以下行。
[web]
allow_push = *
push_ssl = false
参考资料:
Mercurial Wiki Windows Install
HG Book
Step by Step
Publishing Mercurial Repositories