mercurial(Hg) Server 搭建 过程记录

mercurial(Hg) Server 搭建 过程记录

1、  环境说明

只是测试搭建,环境为本机开发环境:win 8.1 + IIS8.5

软件准备:

2、  软件安装

先安装Python2.7, 然后安装Mercurial的Python package, 然后安装TortoiseHg, 最后安装url rewrite组件。

3、 在D盘建一个数据仓库总目录, 例如D:\Mercurial\ hgweb, 所有的repositories都将位于这个目录之下。

(Repositories是仓库文件夹,下面存放多个代码仓库。这里为了方便放入D:\Mercurial\ hgweb路径下,其实也可放在别的路径,只要在配置文件中配置对就行了)

4、  IIS下建立网站hg

双击Handlers Mappings, 右侧会出现一个actions列表, 点击Add Managed Handler, 会弹出一个新建窗口, 按如下图所示填写这个新建窗口:

5、 在D:\Mercurial\ hgweb路径下建立hgweb.cgi文件,内容如下:

#!D:/Python27/python.exe

#

# An example FastCGI script for use with flup, edit as necessary

# Path to repo or hgweb config to serve (see ‘hg help hgweb‘)

config = "D:/Mercurial/hgweb/hgweb.config"

# Uncomment and adjust if Mercurial is not installed system-wide

# (consult "installed modules" path from ‘hg debuginstall‘):

import sys; sys.path.insert(0, "D:\\Python27\\Lib\\site-packages\\mercurial")

# Uncomment to send python tracebacks to the browser if an error occurs:

from mercurial import demandimport;

demandimport.enable()

import cgitb

cgitb.enable()

#import os

#os.environ["HGENCODING"] = "UTF-8"

from mercurial.hgweb.hgwebdir_mod import hgwebdir

import mercurial.hgweb.wsgicgi as wsgicgi

application = hgwebdir(config)

wsgicgi.launch(application)

其中D:/Python27/python.exe为python安装路径,

config = "D:/Mercurial/hgweb/hgweb.config" (下一步将建立的文件)

D:\\Python27\\Lib\\site-packages\\mercurial 为安装Mercurial的Python package路径。

6、 再在D:\Mercurial\ hgweb下新建一个文本文件, 重命名为hgweb.config,内容为:

[paths]

/Repositories/ = D:/Mercurial/hgweb/Repositories/*

[web]

encoding = UTF-8

push_ssl = false

allow_read = *

allow_push = *

baseurl = /

即可尝试浏览http://localhost/hgweb.cgi . 应该能看到如下界面:

(由于80端口有其他网站,此处用的83端口,内部使用,所以安全问题不大关注 设置push_ssl = false)

7、 创建网站时会自动生成个web.config文件,用任意文本编辑器打开此文件, 在System.webServer节下的handlers节下面增加一个rewrite节

 1 <?xml version="1.0" encoding="UTF-8"?>
 2
 3 <configuration>
 4
 5     <system.webServer>
 6
 7        <handlers>
 8
 9             <add name="CGIHandler" path="*.cgi" verb="*" modules="CgiModule" scriptProcessor="D:\Python27\python.exe -u &quot;%s&quot;" resourceType="Unspecified" requireAccess="Script" />
10
11        </handlers>
12
13       <rewrite>
14
15         <rules>
16
17           <clear />
18
19           <rule name="hgweb.cgi" enabled="true" patternSyntax="Wildcard">
20
21             <match url="*" />
22
23             <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
24
25               <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
26
27             </conditions>
28
29             <action type="Rewrite" url="hgweb.cgi/{R:1}" />
30
31           </rule>
32
33         </rules>
34
35       </rewrite>
36
37         <security>
38
39             <authorization>
40
41                 <remove users="*" roles="" verbs="" />
42
43                 <add accessType="Allow" users="?" />
44
45             </authorization>
46
47         </security>
48
49     </system.webServer>
50
51 </configuration>

这样直接用http://localhost/ 就可访问和http://localhost/hgweb.cgi一样的效果。

8、 用Hg在Repositories中创建仓库

然后就可以在客户端clone仓库、以及push到服务器了。

在push时可能会遇到权限问题,解决方法:

1)         确定IIS_IUSERS有读写D:/Mercurial/hgweb文件夹的权限;

2)         修改仓库中的.hg/hgrc文件

添加如下内容

[web]

allow_read = *

allow_push = *

push_ssl = false

(也没太弄明白为什么,hgweb.config中也有这些配置,和这里有啥区别?但是在这里添加后确实可以PUSH了)

参考网址:

http://www.cnblogs.com/Moosdau/archive/2012/03/06/2382769.html

http://blog.csdn.net/delphinew/article/details/5440723

http://bz.selenic.com/show_bug.cgi?id=2954

时间: 2024-10-24 11:40:02

mercurial(Hg) Server 搭建 过程记录的相关文章

MAPR 开发环境搭建过程记录

我下载了MAPR 官方提供的virtualbox 和 vmware版本的sandbox进行试用. 开始试用了一会vmware版的,因为不太熟悉vmware的操作,而且vmplayer经常没有反应,后来改用了virtualbox版. 因为sandbox是单机版的,所以必须把网络设置设为host only,否则服务是无法正常启动的. 即使是这样,服务时常因为超时无法正常启动,这时我们可以在按alt+F2进入系统后重启服务即可.可能需要多尝试几次. 我想在sandbox中使用eclipse开发mapr

Python 语言搭建SELENIUM测试环境,搭建过程记录。

第一步,安装Python: 第二步,安装SetupTools: 第三步,安装Pip: 第四步,安装selenium(for python) 第五步,新建第一个基于Firefox的测试用例 上述 只是步骤,具体内容,明天补充,睡觉 咯--- Python 语言搭建SELENIUM测试环境,搭建过程记录.

线上测试环境搭建过程记录

第一步:安装JDK,以jdk1.8为例子: 1.将jdk1.8的rpm软件包拷贝到 /usr/local 下 2.执行 rpm -ivh jdk-8u191-linux-i586.rpm 3.安装完以后  会在 /usr/java/latest 下有对应的 jdk 版本 4.添加环境变量: vi .bashrcexport JAVA_HOME=/usr/java/latestexport PATH=$PATH:$JAVA_HOME/binsource .bashrc 5.查看版本 java -v

服务器环境搭建过程记录贴

记录我的lnmp安装过程: (确实,在折腾这些事儿的时候心里都是比较烦躁了.所以也没有安心截图:) 主要流程:运行screen -S lnmp-->下载lnmp安装包-->安装lnmp一键安装包-->添加虚拟主机-->修改数据库密码-->将备份导入数据库-->完成 因为之前想要升级apache2.2.25,所以就各种折腾啊,从yum,再到rpm再到instal,都没有能够成功安装,所以很气愤,索性将所有的LAMP全部删除了,选择使用LNMP进行安装.所以通过万恶的百度,

Linux系统下的SVN Server搭建过程

一.摘要 主要在Linux操作系统下使用SVN服务器 二.安装步骤 0.验证是否有svnserver (svnserve --version)1.安装svnserver (yum install -y subversion)2.验证是否安装成功 (svnserve --version)3.进入到svn的资源目录 (cd /home/svndir)4.创建svn资源库 (svnadmin create myProject)5.新增用户 6.配置用户权限 7.配置资源库权限 8.启动或者重启 9.测

Linux下kafka集群搭建过程记录

环境准备 zookeeper集群环境kafka是依赖于zookeeper注册中心的一款分布式消息对列,所以需要有zookeeper单机或者集群环境. 三台服务器: 172.16.18.198 k8s-n1 172.16.18.199 k8s-n2 172.16.18.200 k8s-n3 下载kafka安装包 http://kafka.apache.org/downloads 中下载,目前最新版本的kafka已经到2.2.0,我这里之前下载的是kafka_2.11-2.2.0.tgz. 安装ka

Simulink Real-Time 环境搭建过程记录

摘要:制作DOS启动U盘,TCP连接Target机器,搭建Simulink Real-Time仿真环境 背景介绍 配置环境: Host主机 - win10系统,Matlab2017a,Visual Studio 2015 Target主机 - R8168网卡 步骤 下载安装各工具软件 :ISO格式DOS系统.DOS6.22 .Ultraiso. 老毛桃 通过Ultraiso软件,制作DOS启动U盘.DOS6.22系统需要U盘容量在4G以下,因为只支持FAT格式.将U盘插入Target机器,BIO

gerrit代码审核服务器搭建过程记录

环境: Ubuntu: 14.04.1 LTS Linux version 3.13.0-43-generic git version 1.9.1 1. 安装配置apache sudo apt-get install apache2 cd /etc/apache2/mods-enabledln -s ../mods-available/proxy.load ln -s ../mods-available/proxy.confln -s ../mods-available/proxy_http.l

mall商城项目搭建过程记录

这是一个我在github上看到的开源项目,采用的技术都是较新的技术 技术选型 Vue SpringBoot mybatis rabbitMQ Docker 开发工具 idea HbuilderX 安装Vue 上vue官网https://vuejs.org/下载vue.js,并且将他复制到项目目录下,并在script标签引用 创建SpringBoot项目 首先安装maven然后在idea创建web项目,并在pom.xml中引入下列依赖 <parent> <groupId>org.sp