Laz*_*Laz 237 version-control mercurial
灵感来自Git的初学者:最终的实用指南.
这是一个信息使用水银为汇编初学者的实际使用.
初学者 - 一个已经触及源代码控制而不太了解它的程序员.
实用 - 涵盖大多数用户经常遇到的情况 - 创建存储库,分支,合并,从/向远程存储库提取/推送等.
备注:
- 解释如何完成某些事情而不是如何实现某些事情.
- 每个答案处理一个问题.
- 尽可能简明扼要地回答.
- 编辑/扩展现有答案,而不是在同一主题上创建新答案.
- 请为想要了解更多信息的人提供Mercurial wiki或HG Book的链接.
问题:
Joa*_*org 16
忽略是在存储库根目录中名为.hgignore的普通文本文件中配置的.像普通文件一样添加它:
hg add .hgignore
Run Code Online (Sandbox Code Playgroud)
有两种语法选项可用于文件匹配,glob和regexp.glob是类似unix的文件名扩展,regexp是正则表达式.您可以通过添加syntax: glob或syntax: regexp逐行添加来激活每个.之后的所有行将使用该语法,直到下一个语法标记.您可以拥有任意数量的语法标记.默认语法是regexp,因此如果您只使用regexp,则不需要任何语法标记.
您可以使用#添加评论
例:
# python temporary files
syntax: glob
*.pyc
#editor autosaves
*~
# temporary data
syntax: regexp
temp
Run Code Online (Sandbox Code Playgroud)
忽略仅适用于非托管文件(即尚未签入的文件).要忽略受版本控制的文件,可以使用开关-I和-X.
要查看已更改的文件列表:
$ hg status
Run Code Online (Sandbox Code Playgroud)
这将打印已更改的每个文件及其状态,其中可包括:
M - 修改.该文件已更改,并且尚未提交更改.A- 添加.之前未跟踪该文件,但如果您提交,Mercurial将开始跟踪它.R - 删除了.该文件之前已被跟踪,但如果您提交,Mercurial将在此提交和将来的提交中停止跟踪它.? - 未知.Mercurial目前未跟踪该文件.除非您使用hg add添加,否则提交将不会对其产生任何影响.!- 失踪.该文件已被跟踪,但Mercurial无法在工作副本中找到它.要查看实际对文件所做的更改:
$ hg diff
Run Code Online (Sandbox Code Playgroud)
有三种方式:
该转换扩展将克隆现有的Subversion版本库到水银之一.它与Mercurial一起提供.它的工作方式大致如下:
hg convert <Subversion URL or directory> <path to new Mercurial repository>
Run Code Online (Sandbox Code Playgroud)
例如,这将获取SixApart memcached存储库的主干.
hg convert http://code.sixapart.com/svn/memcached/trunk
Run Code Online (Sandbox Code Playgroud)
扩展可以逐步将新版本从Subversion存储库引入Mercurial存储库(有点像拉动).但是它不支持Mercurial修订并将它们发送回Subversion(没有推送). [XXX:如果错误,请纠正此问题].
该hgsubversion扩展.它在很多方面都是最复杂的解决方案,因为它使用Subversion API与Subversion存储库进行通信.它的目标是成为了 HG-svn的桥梁.它允许完全舍入修改(完全克隆,拉动和推送),但在撰写本文时[XXX:如果/当它变得不正确时修改此内容]它仍在开发中,并且还没有正式发布.因此,它只适用于最新的Mercurial(撰写本文时为1.3).
tags/用于区分它们与等效命名的分支).closed-branches用于关闭在Subversion中删除的分支.hg svn <subcommand>虽然它的目的是集成到你不需要'svn'部分的那一点(即它希望尽可能多地处理Subversion克隆,就像任何其他Mercurial存储库一样).它的工作原理如下:
克隆:
hg svnclone <Subversion URL>
Run Code Online (Sandbox Code Playgroud)
或(仅适用于svn://URL)
hg clone <svn:// URL>
Run Code Online (Sandbox Code Playgroud)
拉:
hg svn pull
Run Code Online (Sandbox Code Playgroud)
推:
hg svn push
Run Code Online (Sandbox Code Playgroud)
来电:
hg svn incoming
Run Code Online (Sandbox Code Playgroud)
传出:
hg svn outgoing
Run Code Online (Sandbox Code Playgroud)
签出整个存储库:
hg svnclone http://code.sixapart.com/svn/memcached
Run Code Online (Sandbox Code Playgroud)
该hgsvn实用程序(到位桶树).直到最近,这只允许你克隆并提取一个Subversion存储库,但hgsvn 0.1.7它支持push.[我不知道它的推力有多好.任何具有更多经验的人都应该更新.]它具有以下显着特征:
branches/some-feature,就像hg branch some-feature.它打开了主干trunk(即Mercurial默认分支上没有任何内容,除非用户明确切换到它.)它的工作原理如下:
克隆:
hgimportsvn <Subversion URL>
Run Code Online (Sandbox Code Playgroud)
拉:
hgpullsvn
Run Code Online (Sandbox Code Playgroud)
推:
hgpushsvn
Run Code Online (Sandbox Code Playgroud)
来电:
hgpullsvn -n
Run Code Online (Sandbox Code Playgroud)
传出:
hgpushsvn -n
Run Code Online (Sandbox Code Playgroud)
签出整个存储库:
hgimportsvn http://code.sixapart.com/svn/memcached
Run Code Online (Sandbox Code Playgroud)
只检查行李箱:
hgimportsvn http://code.sixapart.com/svn/memcached/trunk
Run Code Online (Sandbox Code Playgroud)
两者都用hg diff.何时hg diff使用工作副本和提示(最新提交)中的所有更改都会显示.
对于"如何比较文件的两个修订版?"
$ hg diff -r{rev1} -r{rev2} {file.code}
Run Code Online (Sandbox Code Playgroud)
上面的命令将显示"file.code"的rev1和rev2之间的不同.
对于"如何比较当前文件和以前的版本?"
$ hg diff {file.code}
Run Code Online (Sandbox Code Playgroud)
上面的命令将显示当前版本的"file.code"和最新版本(最新提交的)之间的不同.
:d
| 归档时间: |
|
| 查看次数: |
31650 次 |
| 最近记录: |