These
commands are very much to the subversion.
1. Creating a repository (hg init)
Create
a mercurial repository in an empty directory by using the init
command:
[root@localhost
~]# mkdir Test
[root@localhost
~]# cd Test
[root@localhost
Test]# hg init
[root@localhost
Test]# ls -lar
total
12
drwxr-xr-x.
3 root root 4096 May 21 06:42 .hg
dr-xr-x---.
36 root root 4096 May 21 06:40 ..
drwxr-xr-x.
3 root root 4096 May 21 06:42 .
Now
there is an empty repository created, locally in your directory. The
repository contains both a
working
copy, and the repository data (the history information).
2.
Adding a file (hg add)
Schedule
a file for addition
[root@localhost
Test]# echo "Testing1" >>test.txt
[root@localhost
Test]# ls -lar
total
16
-rw-r--r--.
1 root root 9 May 21 06:47 test.txt
drwxr-xr-x.
3 root root 4096 May 21 06:42 .hg
dr-xr-x---.
36 root root 4096 May 21 06:40 ..
drwxr-xr-x.
3 root root 4096 May 21 06:47 .
[root@localhost
Test]# hg add
adding
test.txt
3.
Committing a file (hg commit)
Commit
command is used to save your changes in the current repository.
[root@localhost
Test]# hg commit -m "my first commit"
4.
Inspecting History (hg log)
Log
command is used to see all changes in your repository.
[root@localhost
Test]# hg log
changeset:
0:1b9e0c6235b3
tag:
tip
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 06:49:51 2013 -0700
summary:
my first commit
We can aslo look at
parts of the history by specify revision ranges:
[root@localhost
Test]# hg log -r 1
changeset:
1:c5ed72928a5e
tag:
tip
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 06:59:28 2013 -0700
summary:
second commit
[root@localhost
Test]# hg log -r 1:2 # From 1 to 2
[root@localhost
Test]# hg log -r :1 # Up to, and including 1.
[root@localhost
Test]# hg log -r 2: # From, and including 2
5.
Status (hg status)
Status
command is used to tells us about modified, removed, or renamed
files.
[root@localhost
Test]# echo "testing2" >>test2.txt # creating new
file
[root@localhost
Test]# hg status # test2 is unknown
to hg
?
test2.txt
[root@localhost
Test]# hg add # Adding test2 to
hg
adding
test2.txt
[root@localhost
Test]# hg status #test2 is not yet
committed.
A
test2.txt
6.
Remove Command (hg rm)
Remove
command is used to remove the file.
[root@localhost
Test]# hg rm test.txt
[root@localhost
Test]# hg status
R
test.txt
[root@localhost
Test]# hg commit -m "removing test.txt file"
[root@localhost
Test]# hg log
changeset:
2:689cfc786a1c
tag:
tip
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 22:35:30 2013 -0700
summary:
removing test.txt file
changeset:
1:c5ed72928a5e
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 06:59:28 2013 -0700
summary:
second commit
changeset:
0:1b9e0c6235b3
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 06:49:51 2013 -0700
summary:
my first commit
7.
Update (hg update)
To
check where we are right now ? Use the identity command to check :
[root@localhost
Test]# hg identify -n
2
Use update command to
update the repository :
[root@localhost
Test]# hg update # repository is upto date
0
files updated, 0 files merged, 0 files removed, 0 files unresolved
To update at some
specific revision use '-r'
[root@localhost
Test]# hg update -r 1
1
files updated, 0 files merged, 0 files removed, 0 files unresolved
[root@localhost
Test]# ls
test2.txt
test.txt
8.
Tag Command (hg tag)
Tag
command is used to assign your own symbolic names to specific
revisions.
[root@localhost
Test]# hg tags
tip
2:689cfc786a1c
[root@localhost
Test]# hg log
changeset:
2:689cfc786a1c
tag:
tip
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 22:35:30 2013 -0700
summary:
removing test.txt file
changeset:
1:c5ed72928a5e
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 06:59:28 2013 -0700
summary:
second commit
changeset:
0:1b9e0c6235b3
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 06:49:51 2013 -0700
summary:
my first commit
[root@localhost
Test]# hg tag -r 1 adding-tag-to-r1 # Adding
tag at revision 1
[root@localhost
Test]# hg log
changeset:
3:ccb2abafd599
tag:
tip
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 22:48:34 2013 -0700
summary:
Added tag adding-tag-to-r1 for changeset c5ed72928a5e
changeset:
2:689cfc786a1c
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 22:35:30 2013 -0700
summary:
removing test.txt file
changeset:
1:c5ed72928a5e
tag:
adding-tag-to-r1
#tag added to revision 1
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 06:59:28 2013 -0700
summary:
second commit
changeset:
0:1b9e0c6235b3
user:
abdul waheed abdulwaheed18@gmail.com
date:
Tue May 21 06:49:51 2013 -0700
summary:
my first commit
9.
Diff command (hg diff)
Diff
command will show difference between the working and repository
revision.
[root@localhost
Test]# ls
test2.txt
[root@localhost
Test]# vi test2.txt
[root@localhost
Test]# hg diff # showing diff
for file test2.txt
diff
-r 689cfc786a1c test2.txt
---
a/test2.txt Tue May 21 22:35:30 2013 -0700
+++
b/test2.txt Tue May 21 22:52:54 2013 -0700
@@
-1,1 +1,2 @@
testing2
+Adding
one more line to check diff
10.
Pull command (hg pull)
Pull
command is used to get all changes from another repository into the
current one.
[root@localhost
Test]# hg pull https://bitbucket.org/abdulwaheed18/testing
11.
Push Command (hg push)
Push
command is used to send all changes from your
repository to another one.
[root@localhost
Test]# hg push https://bitbucket.org/abdulwaheed18/testing
12.
Clone Command (hg clone)
Clone
command is used to makes a clone of a repository with the complete
project history. It makes a complete copy of another repository so
that we will have our own local, private one to work in.
warning:
bitbucket.org certificate with fingerprint
24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b not
verified (check hostfingerprints or web.cacerts config setting)
http
authorization required
realm:
Bitbucket.org HTTP
user:
abdulwaheed18
password:
warning:
bitbucket.org certificate with fingerprint
24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b not
verified (check hostfingerprints or web.cacerts config setting)
destination
directory: testing
warning:
bitbucket.org certificate with fingerprint
24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b not
verified (check hostfingerprints or web.cacerts config setting)
requesting
all changes
warning:
bitbucket.org certificate with fingerprint
24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b not
verified (check hostfingerprints or web.cacerts config setting)
adding
changesets
adding
manifests
adding
file changes
added
2 changesets with 2 changes to 2 files
warning:
bitbucket.org certificate with fingerprint
24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b not
verified (check hostfingerprints or web.cacerts config setting)
warning:
bitbucket.org certificate with fingerprint
24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b not
verified (check hostfingerprints or web.cacerts config setting)
updating
to branch default
2
files updated, 0 files merged, 0 files removed, 0 files unresolved
[root@localhost
test_clone]# ls # we got local copy of testing
testing
[root@localhost
testing]# hg log # local copy with the history
changeset:
1:07c9802fabde
tag:
tip
user:
abdulwaheed18@gmail.com
date:
Tue May 21 02:35:52 2013 -0700
summary:
commiting second tym
changeset:
0:7aafa4bde466
user:
abdulwaheed18@gmail.com
date:
Tue May 21 02:00:18 2013 -0700
summary:
test
[root@localhost
testing]# hg summary # gives the repository information
parent:
1:07c9802fabde tip
commiting
second tym
branch:
default
commit:
(clean)
update:
(current)
13.
Help Command (hg help)
Last
but not least, Help command will give you the detail explanation of
all commands supported by Mercurial.
“hg
help”
will give list of all command.
To
check particular command use “hg
help <command_name>”