Mercurial特点

相对于传统的版本控制,具有如下优点:

更轻松的管理。传统的版本控制系统使用集中式的 repository,一些和 repository相关的管理就只能由管理员一个人进行。由于采用了分布式的模型,Mercurial 中就没有这样的困扰,每个用户管理自己的 repository,管理员只需协调同步这些repository。 更健壮的系统。分布式系统比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响。 对网络的依赖性更低。由于同步可以放在任意时刻进行,Mercurial 甚至可以离线进行管理,只需在有网络连接时同步。

Mercurial元素

Revision

在使用 Mercurial 的系统中每个改动隔离在各自的 repository 里,既避免把不相关的代码混杂起来, 又便于一个接一个的测试每一部分工作,用户做的每个改动称为一个 revision。一般会有一个所有用户都可以访问得到的 repository 保存了项目的“主要”版本,工作repository 是用户自己做事情的地方,实现新的特性,修改漏洞,重构,实验等,当完成改变后,你可以 push 到共用的 repositor y中,即完成了一个 revision。

Changeset

一个或多个文件的改变集合在一起形成一个逻辑单元,称为 changeset。每一个 changeset由两部分内容描述,版本号和 changeset 标识,例如:changeset: 207:58e4906e69e3

冒号前面的数字代表版本号,它用来标识本地 changeset。这个版本号只有在用户的本地repository 中才有意义。冒号后面的那个很长的十六进制串是 changeset标识, 它是确定changeset的全局唯一标识符, 在所有包含这个 changese 的 repository 中都相同。多个用户之间讨论changeset,一般使用这个 changeset 标识,而不是上面说的版本号,因为完全有可能每个用户的 repository 中同样的 changeset 版本号不同。

Head

Head 表示 repository 中每个分支最新的 revision,通常在合并几个分支时会用到这个概念。

Tip

Tip 是最新的一个 changeset 的版本号的一个别名。在命令中任何使用版本号的地方都可以使用 tip 来代替最新的 changeset的版本号。Tip在各个repository中是不同的,同时一个repository 中只有一个 tip。

Log

Log 命令按时间顺序从近到远的记录着在 repository 中发生的每一次事件。可以通过指定-v诊断输出选项来获得更多更详细的历史信息,或者指定—debug选项来获得历史信息中的一切细节。

Mercurial操作

Mercurial通过hg命令加上关键字来进行操作,可以远程同步、上传代码。

用法

拷贝(同步)源码并提交修改:

$ hg clone repository (这里repository是源码的地址)

$ cd hello

$ (edit files)

$ hg add (new files)

$ hg commit -m 'My changes'

$ hg push

创建新的hg项目,并提交:

$ hg init (project-directory)

$ cd (project-directory)

$ (add some files)

$ hg add

$ hg commit -m 'Initial commit'

Mercurial造价信息

市场价 信息价 询价
材料名称 规格/型号 市场价
(除税)
工程建议价
(除税)
行情 品牌 单位 税率 供应商 报价日期
智能LED灯控制系统 服务智能系统软件安装、调试工作组级服务器 查看价格 查看价格

梵朗

13% 深圳市梵朗照明科技有限公司江门办事处
控制系统 品种:控制系统; 查看价格 查看价格

勇创

13% 佛山市勇创门业科技有限公司
控制系统 控制系统 查看价格 查看价格

13% 重庆汉沙科技有限公司
控制系统 CA-TP1350 查看价格 查看价格

13% 深圳市车安科技发展有限公司广州分公司
控制系统 JFLNKW-8099/停车场专业电源,防雷击,防潮湿 查看价格 查看价格

13% 成都新捷帆科技有限公司
控制系统 JDC-BX9 查看价格 查看价格

13% 深圳市九鼎智能技术有限公司
控制系统 CA-TP0112 查看价格 查看价格

车安

13% 湖北车安智能科技有限公司
控制系统 规格型号:FLP-Y420;电压:AC220V; 查看价格 查看价格

飞利浦

13% 天津金泰恒国际贸易有限公司
材料名称 规格/型号 除税
信息价
含税
信息价
行情 品牌 单位 税率 地区/时间
微电网系统 查看价格 查看价格

广东2022年1季度信息价
微电网系统 查看价格 查看价格

广东2021年4季度信息价
微电网系统 查看价格 查看价格

广东2021年3季度信息价
微电网系统 查看价格 查看价格

广东2021年2季度信息价
微电网系统 查看价格 查看价格

广东2020年3季度信息价
微电网系统 查看价格 查看价格

广东2019年4季度信息价
微电网系统 查看价格 查看价格

广东2022年2季度信息价
微电网系统 查看价格 查看价格

广东2020年2季度信息价
材料名称 规格/需求量 报价数 最新报价
(元)
供应商 报价地区 最新报价时间
会议控制系统 会议控制系统|1套 3 查看价格 深圳金华亿网络工程有限公司 广东  阳江市 2017-12-05
AGV控制系统 AGV控制系统|1套 1 查看价格 珠海创智科技有限公司 全国   2021-02-20
会议控制系统 会议控制系统|1套 3 查看价格 华平信息技术股份有限公司 广东  阳江市 2018-05-16
DMX控制系统 DMX控制系统|500套 1 查看价格 广州市雷雄照明器材有限公司 广东  广州市 2021-07-30
会议控制系统 会议控制系统|1套 3 查看价格 华平信息技术股份有限公司 广东  阳江市 2017-12-26
控制系统 含播放控制系统|1套 1 查看价格 深圳市丽晶源光电科技有限公司 广东   2018-01-17
控制系统 含播放控制系统|1套 1 查看价格 深圳市丽晶源光电科技有限公司 广东   2018-01-17
控制系统 含播放控制系统|1套 1 查看价格 深圳市丽晶源光电科技有限公司 广东   2018-01-17

Mercurial - Spectre

最近更新: 6.43b

基本操作

以下使用大多基于命令行形式,版本是1.2.11

因为本地即是版本库的服务端也是版本库的客户端,所以首先得区分好版本库和工作目录两个概念,版本库存放了所有的版本,工作目录只是某个特定的版本,这个概念同svn是一致的,只是svn的版本库不在本地,而在集中的一台服务器上。

hg init创建新仓库,版本库的文件放在一个.hg的文件夹下面

hg add添加未版本化的文件

hg commit提交修改,使用-m 填写comments,同svn是一样的

hg tip查看当前版本库的最新版本,注意:不是当前工作目录的最新版本。tip是版本库最新版本的意思

hg parents查看当前工作目录的最新版本,如果这个版本有多个parent,会显示出来,如果没有则不显示。parent是指某个版本的前一个版本,如果某个版本通过 两个版本merge而来,则会出现多个parents。mercurial还不支持超过两个的parents,也就是说只能将版本两个两个的合并,合并3 个版本需要操作2次,合并4个版本需要操作3次,依次类推,如果碰到8个版本需要合并,则需要合并7次...

hg clone克隆一个版本库到本地,当项目开始的时候,建议在一台电脑上init项目后,然后大家从他那clone出来,而不是各自init。

hg pull从另一个版本库更新版本到本地

hg push将本地版本库更新到其他版本库中,其他版本库需要开通ssh服务,Windows下需要cygwin来启动ssh,linux下用openssh实现。Windows客户端连接ssh服务器时,需要在mercurial.ini的ui段配置,如下

[ui]

ssh = "C:\Program Files\TortoiseHg\TortoisePlink.exe"

putty.exe 无法配合hg使用。

TortoisePlink.exe对于 ssh://xx/ 之后的路径需要再加一个"/" 以示根路径,如下:

ssh://192.168.107.129//home/arthur/hg/hello

hg incoming将本地版本库同其他版本库进行比较,看看有哪些changeset在其他版本库中可以pull过来

hg outgoing将本地版本库同其他版本库进行比较,看看有哪些changeset可以push到其他版本库中

hg update更新工作目录,默认参数是tip,参数也可以是版本号、tag名字、branch名字。svn中的切换branch/tag通过这个命令来实现

hg tag制定一个永久的版本号,tag存放在.hgtags文件中,这个文件也需要版本化

hg branch显示当前branch,或者新建一个branch,默认的branch名字是default。

hg diff对比版本间的差异

hg merge合并版本到当前工作目录,hg pull之后会提示hg update,hg update之后如果提示hg merge,这时候的merge是在最新版本的基础上进行的merge,merge之后所作的修改需要通过commit来生成新的版本号。

合并branch : hg merge branchname ,先确认hg branch是什么再执行这个命令。

当一个branch的历史使命完成的时候,这时候需要决定是基于这个branch新开一个branch,还是在某个之前的版本开立branch. default是一个没有创立任何branch时的默认branch名字。

如果希望继续工作在default branch下,则需要先hg update default,然后再考虑需要合并哪些版本到default里面,之后就可以在default下一直工作了。

对于开了多个branch需要合并到default时,需要一个个branch来合并,诸如这样:

hg merge foo

hg merge bar

hg ci -m "merge foo and bar to default

"

在windows下,如果安装了beyond compare,会自动被调用出来。

显示三个窗口:本地文件、基文件((在分支分开前的最后一个版本))、其他文件(外来的文件)。这种合并模式同svn是一样的。

merge做完之后,需要hg ci提交修改,这时可以看到tip 信息中的parent有两个,表明是从两个版本中merge过来的。

beyond compare对于冲突有三个基本选项:Take left, take center, take right,分别对应以上三个文件的内容。还有其他几个选项也很容易明白。有冲突时还可能需要手工输入内容。

另外,如果我们没有安装图形合并程序, 我们就会开启文本编辑器来访问需要合并的文件。用手工来做这些事情是非常容易出错并且繁琐的。 最好是退出编辑器并用hg rollback指令来清除["Pull"]带来的改变,然后安装合并程序,再做一次。

hg headshead指的是没有儿子chaneset的changeset,也就是版本树的叶子节点,多个叶子节点可以进行合并为一个叶子, branch heads指那些给了tag但还没有儿子changeset的changeset。 用hg heads显示当前库所有的heads , 如果存在多个heads则说明有多条并行开发的路径,这时需要考虑是否需要合并。

hg serve -n "hellohg" -p 80运行网络服务。之后可以通过hg pull http://localhost/hellohg 来下载这个版本库。这是一个临时性的便捷的提供pull版本库服务的方法

hg export导出changeset,默认导出tip,需要用重定向来导出到文件中,之后这个文件可以通过邮件附件发出,这样可以实现无网络连接状态下的版本同步

hg import导入changeset2100433B

Mercurial控制系统常见问题

  • 控制系统

    一般需单独计算。垂直立线这一段一般是采用金属软管敷设的。

  • 什么是化工集散控制系统(DCS控制系统)

    就是化工厂采用DCS控制系统来控制和监视整个装置的生产工艺参数,可以节省人力,提高控制的质量和安全系数。DCS,也称集散控制系统;是集中控制,分散危险的意思。整个控制系统将现场的仪表信号(温度、压力、...

  • 集散控制系统与分散控制系统 区别

    其实是一回事。英文原名:DCS-Distributed Control System,直译的话即为分布式控制系统或分散控制系统,只是其也有集中操作管理的功能,所以一般我们用的都是意译:集散控制系统。现...

Mercurial控制系统文献

控制系统和控制过程 控制系统和控制过程

格式:pdf

大小:631KB

页数: 8页

评分: 4.3

控制系统和控制过程

立即下载
泵站控制系统 泵站控制系统解决方案 泵站控制系统 泵站控制系统解决方案

格式:docx

大小:631KB

页数: 24页

评分: 3.9

泵站控制系统适用于城市供水系统中加压泵站的远程监控及管理。

立即下载
Mercurial相关推荐
  • 相关百科
  • 相关知识
  • 相关专栏