`
yaofeng928
  • 浏览: 7394 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Mercurial-server的安装

阅读更多
Mercurial是一个分布式的的版本控制工具。其自身提供了一个web服务端,但是没有权限控制功能。Mercurial-server可以弥补这个不足,它通过ssh来控制不同版本库的访问权限。需要注意的是Mercurial-server只能安装在linux系统上。

Ubuntu系统下的安装:
如果使用的是Ubuntu操作系统的话安装是非常简单的,只需要执行下面的命令:
$ sudo apt-get update
$ sudo apt-get install mercurial mercurial-server


Redhat系统下的安装:
这个相对来说会复杂一些,而且失败率非常高,按照官方文档的方法连第一步都无法通过。后来经过一番漫长的摸索终于安装成功了。这里和大家分享一下:
1、看到解压后的目录中含有Makefile,直接执行make,结果报错,无法成功安装;
2、分析Makefile中的内容,发现整个安装过程包含复制文件、创建用户、初始化用户等几个任务。接下来开始手工安装:
a.首先通过make命令进行文件复制:make pythonbuild pythoninstall
b.通过make执行创建用户任务会报错,所以直接使用系统命令创建:useradd hg
c.再通过make的inituser对用户进行初始化:make inituser


Mercurial-server安装成功后需要进行一定的配置:
1、切换到hg用户下;
2、创建权限控制的基本文件/etc/mercurial-server/access.conf,并输入以下内容
init user=root/**
deny repo=hgadmin
write user=users/**

3、将自己的ssh公钥复制到版本库服务器的/etc/mercurial-server/keys/root/user-name/目录中
4、创建~/.ssh目录
5、执行/usr/local/share/mercurial-server/refresh-auth进行权限刷新
6、将~/.ssh目录的权限设置为只读


特别需要注意的一点是:
mercurial-1.9.1与mercurial-server有兼容问题,即会报这样一个错误:
remote: Traceback (most recent call last):
remote:   File "/usr/local/share/mercurial-server/hg-ssh", line 76, in <module>
remote:     dispatch.dispatch(['-R', repo, 'serve', '--stdio'])
remote:   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 31, in dispatch
remote:     if req.ferr:
remote: AttributeError: 'list' object has no attribute 'ferr'
abort: no suitable response from remote hg!

如果出现这个错误,换用1.8.4版本便可以解决。


此外,我在安装mercurial-1.9.1的时候报了一个错误:docutils module is missing。这时需要安装一下这个模块,安装方法如下:
# wget http://prdownloads.sourceforge.net/docutils/docutils-0.7.tar.gz?download
# tar -zxf docutils-0.7.tar.gz
# cd docutils-0.7
# python setup.py install



参考资料:
http://dev.lshift.net/paul/mercurial-server/docbook.html
http://www.bookandman.com/2010/08/07/mercurial-server/
分享到:
评论

相关推荐

    HgLab - Mercurial Server for Windows Crack

    tested: 1.7.5 Behind-the-firewall self-hosted Mercurial server and source control management system.

    Mercurial 分布式版本控制系统 部署 server 服务

    1. **安装Mercurial**:在服务器上安装Mercurial软件包,可以通过操作系统自带的包管理器或从官方网站下载源码编译安装。例如,在Ubuntu上,可以使用`apt-get install mercurial`命令进行安装。 2. **创建仓库**:...

    nogrk安装文档

    ### nogrk安装与配置详解 #### 一、概述 nogrk是一款开源的隧道服务工具,可以帮助用户在本地机器和互联网之间建立安全稳定的隧道连接。本文档将详细介绍nogrk的安装步骤及其在Linux环境下的配置方法,并针对微信...

    kinect2_fake_laser

    ros-indigo-map-server ros-indigo-fake-localization \ ros-indigo-amcl git subversion mercurial 再启动:roslaunch rviz rviz -d `rospack find rbx1_nav`/fack_laser.rviz 这样就可以看到获取的激光数据了。

    mercurial.zip

    这通常通过在Nginx配置文件中添加或修改指令来完成,如`rtmp_server`、`rtmp_app`、`rtmp_stream`等。 3. **流媒体服务器**:了解RTMP(Real-Time Messaging Protocol)协议,它是Adobe Systems用于音频、视频数据...

    Effective-Robotics-Programming-with-ROS——中文学习笔记

    **1.1 安装ROS Indigo** 在开始深入学习《Effective Robotics Programming with ROS》之前,首先需要搭建一个合适的开发环境。本书的学习笔记主要基于ROS (Robot Operating System) Indigo版本进行讲解。为了能够...

    freebsd开发环境解决方案

    - **安装版本控制系统**:如Git或Mercurial,以便进行代码管理和版本控制。 - **安装调试工具**:如GDB或LLDB等,用于调试程序。 ##### 3. 配置开发服务 - **CVS Server**:CVS是早期流行的版本控制系统之一,可以...

    redmine 安装手册

    接着,安装 MySQL 服务器,通过 `yum install mysql-server` 命令。创建数据库和用户,例如创建名为 "redmine" 的数据库,字符集设为 UTF8,并创建一个名为 "redmine" 的用户,赋予所有权限。这可以通过登录 MySQL ...

    VS2022软件配置管理说明-visualSVN+TortoiseSVN+AnkhSvn汇编.pdf

    Visual SVN Server的安装过程包括: * 下载和安装Visual SVN Server * 配置Visual SVN Server的服务器设置 * 添加代码库StartKit ### 4. Visual SVN Server 安全设置 Visual SVN Server提供了安全设置功能,包括...

    neqo — 用 Rust 编写的 QUIC 实现

    Neqo,一个用 Rust 编写的 QUIC 实现运行测试 HTTP/3 程序(neqo-client 和 neqo-server):cargo build./target/debug/...注意:如果没有单独编译 NSS,则需要安装 mercurial (hg)。NSS 构建需要 gyp 和 ninja(或 n

    hgsnooper:用于监控 mercurial repo 新传入的服务

    之后,通过设置相应的钩子,比如在server配置段中添加hgsnooper,就可以让hgsnooper在每次有新的服务请求时触发。 hgsnooper的输出通常包括提交者的用户名、更改的文件列表、提交消息等关键信息,这些信息可以帮助...

    IntelliJ-IDEA13基础教程

    - Mercurial (hg4idea):类似于 Git 的分布式版本控制系统。 - Perforce:商业版本控制系统。 - Team Foundation Server (TFS):微软提供的源代码管理系统。 - Visual SourceSafe (VSS):微软早期的版本控制系统...

    Open-JDK-13:编译出的OpenJDK-13 JVM内核分析

    1系统环境 Xcode Oracle JDK:13 先确保系统已安装freetype和ccache 自由类型:2.9 ccache:3.3.5 $ brew install freetype ccache ...-- with - jvm - variants = server 编译server类型JVM -- wi

    ronin:Ronin是一个为信息安全和数据探索任务而设计的Ruby平台。 Ronin允许在许多常见的源代码管理(SCM)系统上快速开发和分发代码-System source code development

    Ronin的一个显著特点是与多种源代码管理系统(如Git、SVN、Mercurial等)的无缝集成。SCM系统在软件开发流程中扮演着核心角色,它们帮助团队协作、跟踪代码变更、管理版本,并且便于回滚错误。通过Ronin,开发者可以...

    SourceAnywhere SVN Bridge

    - 首先,安装并配置SourceAnywhere Server。 - 接着,安装SourceAnywhere SVN Bridge,并设置桥接工具以连接到SourceAnywhere Server。 - 在SVN客户端中配置Bridge作为SVN服务器地址。 - 开始使用SVN客户端进行版本...

    sql-source-control:用于将SQL放入源代码控制系统的简单CLI

    目录产品特点 :smiling_face_with_sunglasses: 与任何源代码控制系统(如Git,SVN,Mercurial等)一起使用。 :sparkles: 支持所有最新版本的Microsoft SQL Server 。 :wrapped_gift: 免费和开源!安装npm install -g...

    IDEA教程中文版。

    - 其他版本控制系统包括:ClearCase、CVS、Mercurial (hg4idea)、Perforce、TFS 和 Visual SourceSafe。 **1.2 开发插件的选择** - **根据个人需求选择合适的插件** - **应用服务器视图**: 提供对不同应用服务器...

Global site tag (gtag.js) - Google Analytics