Mercurial是一个免费的、分布式源代码控制管理工具,其有着友好的界面,整个操作也是非常简单,而其设计也是超级人性化的。Mercurial,采用 Python 语言实现,便于学习和操作,是一种轻量级分布式版本控制系统。
更轻松的管理
传统的版本控制系统使用集中式的 repository,一些和 repository相关的管理就只能由管理员一个人进行。由于采用了分布式的模型,Mercurial 中就没有这样的困扰,每个用户管理自己的 repository,管理员只需协调同步这些repository。
更健壮的系统
分布式系统比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响。
对网络的依赖性更低
由于同步可以放在任意时刻进行,Mercurial 甚至可以离线进行管理,只需在有网络连接时同步。
mercurial是款轻量级的分布式版本控制系统,mercurial官方版(分布式版本控制系统)采用python语言开发,便于学习和操作,有非常强大的扩展性,其是基于 GNU General Public License (GPL) 授权的开源项目。
该款软件有着友好的界面,操作非常简单,设计的非常人性化,与传统的集中式版本控制系统相比,它的优点是更加方便你的管理和使用。
以下使用大多基于命令行形式,版本是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,也就是版本树的叶子节点,多个叶子节点可以进行合并为一个叶子, branchheads指那些给了tag但还没有儿子changeset的changeset。 用hg heads显示当前库所有的heads ,如果存在多个heads则说明有多条并行开发的路径,这时需要考虑是否需要合并。
hg serve -n "hellohg" -p 80 运行网络服务。之后可以通过hg pull 来下载这个版本库。这是一个临时性的便捷的提供pull版本库服务的方法
hg export 导出changeset,默认导出tip,需要用重定向来导出到文件中,之后这个文件可以通过邮件附件发出,这样可以实现无网络连接状态下的版本同步
hg import 导入changeset
加载全部内容
RubyMine2020破解版(附激活码)312.3M251人在玩JetBrainsRubyMine2020是一个全新的为Ruby和Rails开发者准备的功能强大、口碑极佳的电脑编程工具,RubyMine破解版能够为用户提供Ruby开发以及测试协助等一系列功能。能够切实有效的实现父方法和子方法之间无缝跳转的操作。欢迎大家下载体验。
下载童程在线少儿编程客户端119.9M83人在玩童程在线少儿编程客户端是一款针对低龄儿童的编程学习软件,其实给孩子学习编程并不是要孩子学得有多厉害,最重要的还是从小培养孩子的编程兴趣,以及培养孩子的编程思想,有需要的朋友快来下载体验吧。
下载GitHub Copilot(人工智能自动完成)195KB66人在玩GitHub Copilot是GitHub和OpenAI推出的编程工具。该软件可以帮助用户纠正代码中的错误,并可以根据用户的代码上下文自动编写后续代码,有效提高您的工作效率。欢迎有需要的用户下载使用!软件介绍Gi...
下载citespace57.7M59人在玩citespace官网下载,citespace中文版下载是专为研究科学的用户打造的可视化文献分析工具,软件可以对科学文献当中的趋势和模式进行分析,然后将分析结果可视化,可以帮助您快速找到领域发展的关键点,并将领域的发展演进出来,从而更好的作出决策。
下载Unity3D下载中文版135KB59人在玩 Unity3D,简称U3D,是一款3D动画游戏开发工具。现在很多终端游戏、页面游戏、手机游戏在开发3D效果的时候都用这个软件,证明它是一款超级3D画面效果制作工具。功能特点:是一款完全集成的专业游戏引擎...
下载老鹰AE脚本管理器358KB58人在玩#8203;老鹰AE脚本管理器是一款非常优秀的AE脚本管理工具,本版已经全部汉化可供各位用户更好的使用,它支持最新版的AE2018,内含脚本管理器、图层排序、圆形排列等脚本等,需要的用户可以到腾牛网免费下载。
下载乐高mindstorms ev3240.0M49人在玩 乐高mindstorms ev3是一个非常好用的编程学习工具,在这里你可以体验极限头脑风暴编程,让你不再局限于课程中的知识,可以让学生了解更多的编程知识,拓展思维。有兴趣的朋友可以快速下载。软件说明 e...
下载我的世界编程猫MOD编辑器185.9M38人在玩我的世界编程猫MOD编辑器是一款专门针对我的世界这款游戏所推出的辅助工具,这款软件的操作方法非常简单,用户无需掌握任何编程知识便能够很轻松的制作出各种类型的mod,这样就能够极大的提升游戏的可玩性。
下载mblock3慧编程121.8M34人在玩mblock3慧编程是款孩子编程启蒙学习软件。软件通过与mbot机器人互动,为孩子提供一个游戏学习环境,可通过完成各类任务、与机器人互动等方式来进行编程学习,从小就可以培养孩子的编程思想,感兴趣的朋友快来下载吧。
下载梦龙网络计划软件109.0M28人在玩斑马梦龙网络计划2018是广联达斑马·梦龙网络进度计划软件,斑马·梦龙网络计划软件是专业、易用的网络计划工具,可以辅助项目通过关键线路+前锋线进行动态管理,打通PDCA循环,让项目进度真正可控!
下载