袭击Mercurial SCM(HG)

这个叫水银的源代码管理工具尽管默默无闻,但还是得到了非常多团队的使用。

为了迎合某些团队的须要,我们也要用它来管理我们的代码。

今天的任务是先袭击学习。磨刀不误砍柴工。

对工具的掌握越快。工作的效率就会越高。

解压到你指定的文件夹下:

[linc@localhost mercurial]$ ls
mercurial-3.2-rc.tar.gz
[linc@localhost mercurial]$ tar xzvf mercurial-3.2-rc.tar.gz

安装之前要检查一下是否已经安装了python-dev,这在fedora下叫作python-devel, 假设没有,编译时会出现错误:

mercurial/base85.c:13:20: fatal error: Python.h: No such file or directory

仅仅要看看/usr/include/python2.7/下有没有上述的头文件就知晓了。

安装也好办。ubuntu下使用:

sudo apt-get install python-dev

fedora下使用:

[linc@localhost etc]$ sudo yum install python-devel

来到mercurial-3.2-rc路径下。运行:

[linc@localhost mercurial-3.2-rc]$ make install-home
python setup.py  build
running build
running build_mo
running build_ext
building 'mercurial.base85' extension
...

make[1]: *** [hg.1] Error 255
make[1]: Leaving directory /home/linc/dev/mercurial/mercurial-3.2-rc/doc' make: *** [doc] Error 2 </code></pre> <p>最后的错误是关于文档的。这里被我无视了,尝试运行hg。得到了反馈。说明基本功能是安装完毕了。</p> <pre><code>[linc@localhost mercurial-3.2-rc]$ hg Mercurial Distributed SCM basic commands: add add the specified files on the next commit annotate show changeset information by line for each file clone make a copy of an existing repository commit commit the specified files or all outstanding changes diff diff repository (or selected files) export dump the header and diffs for one or more changesets forget forget the specified files on the next commit init create a new repository in the given directory log show revision history of entire repository or files merge merge working directory with another revision pull pull changes from the specified source push push changes to the specified destination remove remove the specified files on the next commit serve start stand-alone webserver status show changed files in the working directory summary summarize working directory state update update working directory (or switch revisions) (use "hg help" for the full list of commands or "hg -v" for details) </code></pre> <p>2.简单的使用</p> <p>以下就要试着创建一个项目并提交代码。</p> <p>创建init文件夹:</p> <pre><code>[linc@localhost testHG]$ hg init testMercurial [linc@localhost testHG]$ ls testMercurial [linc@localhost testHG]$ cd testMercurial/ </code></pre> <p>加入我的小项目,将其它文件夹下的源代码拷到这里:</p> <pre><code>[linc@localhost testMercurial]$ cp -r ../../hello/* . [linc@localhost testMercurial]$ ls Debug Release src </code></pre> <p>查看当前状态:</p> <pre><code>[linc@localhost testMercurial]$ hg status ? Debug/makefile ? Debug/objects.mk ? Debug/sources.mk ? Debug/src/subdir.mk ? Release/makefile ? Release/objects.mk ? Release/sources.mk ? Release/src/subdir.mk ? src/hello.c </code></pre> <p>问号表示还没有纳入版本号管理。以下就给它们加入进来:</p> <pre><code>[linc@localhost testMercurial]$ hg add adding Debug/makefile adding Debug/objects.mk adding Debug/sources.mk adding Debug/src/subdir.mk adding Release/makefile adding Release/objects.mk adding Release/sources.mk adding Release/src/subdir.mk adding src/hello.c [linc@localhost testMercurial]$ hg status A Debug/makefile A Debug/objects.mk A Debug/sources.mk A Debug/src/subdir.mk A Release/makefile A Release/objects.mk A Release/sources.mk A Release/src/subdir.mk A src/hello.c </code></pre> <p>A就是add的标识了。以下我们提交这些代码吧。</p> <pre><code>[linc@localhost testMercurial]$ hg commit -m 'initial commit' abort: no username supplied (use "hg config --edit" to set your username) [linc@localhost testMercurial]$ hg config --edit </code></pre> <p>可惜由于我没有编辑好我的名称在配置文件里,先去加入一下。然后继续提交代码:</p> <pre><code>[linc@localhost testMercurial]$ hg commit -m 'initial commit' [linc@localhost testMercurial]$ hg status [linc@localhost testMercurial]$ hg log changeset: 0:23ac3f5bfc59 tag: tip user: Lincoln date: Mon Oct 27 21:05:10 2014 +0800 summary: initial commit </code></pre> <p>上面的changeset就是git中的commit id,冒号前面的0就是你的changeset id。越靠前表示它的资历越老。</p> <p>tag中的tip,一般出如今最新的changeset中,这个小技巧你要记住了哦。</p> <p>最后我们要将提交推到远程库中才算大功告成。</p> <p>与git相似。也是用push命令:</p> <pre><code>hg push /the remote repository </code></pre> <p>我想要看看这一版都改动了那些地方怎么查?记得git中用show命令。hg呢?export就好了:</p> <p>
[linc@localhost testMercurial]$ hg export 0:23ac3f5bfc59
HG changeset patch
User Lincoln
Date 1414415110 -28800
Mon Oct 27 21:05:10 2014 +0800
Node ID 23ac3f5bfc592c7bd2b293e8ace0f42b9e541ece
Parent 0000000000000000000000000000000000000000
initial commit

diff -r 000000000000 -r 23ac3f5bfc59 Debug/makefile

Original: https://www.cnblogs.com/zfyouxi/p/5413442.html
Author: zfyouxi
Title: 袭击Mercurial SCM(HG)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547709/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球