Mercurial 是一款用 Python 编写的轻量级分布式版本控制系统,遵循 GNU GPL 协议开源。它上手门槛低,操作逻辑直观,同时具备很强的扩展能力。和集中式版本管理工具不同,Mercurial 在每个节点上都保留完整的版本库,管理更灵活,对网络环境的依赖也小得多。日常使命令行为主,也支持通过内置服务临时开放网页界面查看历史记录。

1、 每个使用者各自维护本地仓库,管理员只负责协调同步,不再像集中式那样所有仓库管理事务都压在一个人身上
2、 分布式结构比单服务器集中式更抗故障,个别节点出问题不会导致整个系统停摆
3、 同步时间可以自由安排,没有网络时照样能提交和管理,等有连接了再推送或拉取即可
4、 仓库自带完整历史,本地就能查看版本变化,不需要每次都连回中心服务器
- WinXP 老机器不要装 6.2.2 新版,装完会提示缺少 API-MS-Win-CRT-Runtime 组件并闪退
- 安装前先把 KB2999226 补丁和 Universal C Runtime 准备好,否则程序无法正常启动
- 安装路径不要出现中文或空格,否则克隆仓库时必然报错
- 电脑端需要在系统变量里配置 HGUSER 和 HGEDITOR,不然提交代码会一直提示缺身份信息
- 手机端在 Termux 里安装时不要用 root 权限,普通用户装到 ~/local 目录就能跑,还能避免大量权限警告
- 电脑端杀毒软件可能把 hg.exe 当成可疑程序拦截,记得提前加入白名单
- 经常用 hg status 和 hg diff 查看当前改动,比盲目改代码靠谱得多
- 大仓库拉取失败时先跑 hg verify,多数情况是本地缓存损坏,不用急着删库重来
- 不要用 U 盘直接拷贝 .hg 文件夹,文件锁冲突会让整个仓库变成只读状态
- 电脑端执行 hg serve 可以临时开一个 Web 界面,手机浏览器就能查看提交历史
- Windows 下记得关闭快速编辑模式,否则选中命令行内容时会卡死黑屏,连 Ctrl+C 都救不回来
- 手机屏幕小敲命令费劲,可以接蓝牙键盘,或者直接用电脑 SSH 远程操作
1、 hg init 用来初始化仓库
2、 hg clone 地址 从远程克隆一份完整仓库到本地
3、 hg commit -m "说明" 提交变更并附上说明文字
4、 hg push 和 hg pull 分别用于推送和拉取更新
5、 hg update -C 强制切换版本,同时丢弃本地未提交的改动
6、 手机端 Termux 里可以用 hg log --graph 以图形方式查看提交树
7、 hg revert 文件 把单个文件还原到上次提交的状态
8、 termux-setup-storage 用于获取手机存储的读写权限
9、 hg --encoding utf-8 强制使用 UTF-8 编码,防止中文乱码
- 本地既是版本库的服务端也是客户端,所以先要分清版本库和工作目录:版本库存放全部历史版本,工作目录只是其中某个特定版本
- 这个思路和 SVN 一致,区别在于 SVN 的版本库在集中服务器上,而 Mercurial 的版本库就在本地
- hg init 创建新仓库后,版本数据都放在 .hg 文件夹里
- hg add 把还没有纳入版本控制的文件添加进来
- hg commit 提交修改,配合 -m 参数填写说明,用法和 SVN 接近
- hg tip 查看版本库中最新的版本,注意它不等于当前工作目录的版本
- hg parents 查看当前工作目录对应的版本,如果该版本由多个版本合并而来,会显示出多个父版本
- Mercurial 目前不支持超过两个父版本,合并三个版本要操作两次,合并四个版本要操作三次,八个版本则需合并七次
- hg clone 把版本库克隆到本地,项目开始时建议先在一台电脑上 init,其他人再从他那里 clone,而不是各自 init
- hg pull 从另一个版本库拉取新版本到本地
(您的评论需要经过审核才能显示)
0条评论