Skip to main content

Note Mecurial hg commands

Try hg manipulate
delete branch
merge
fix conflict
on a test repo https://bitbucket.org/dungnv_NAL/
...

Clean, remove all change (not pushed).

hg update -C -r 123

hg revert
hg pull, update
...

hg log -p -r 2581
List change in revision 2581 with its parent.

hg diff -r 111 -r 222
(Not tested yet)

hg checkout/revert back to old revision
hg update -r REV

merge:
hg merge

hg commit --close-branch
https://stackoverflow.com/questions/4957721/mercurial-how-to-discard-all-local-changes-including-to-unversioned-files

sudo hg status --change 8f20236cba39
https://stackoverflow.com/questions/13112280/mercurial-hg-equivalent-of-git-reset-mixed-or-soft
hg status --change REV
sudo hg revert ../../../wp-config.php

sudo hg rollback

sudo hg merge

sudo hg update default
# Abort hg commit
# r = revision number get by `hg log --limit=5`
hg update -C -r 3

# reset commit not pushed #similar as git reset hard ...
hg strip --keep --rev .

# In case same branch forget pull before commit/push => use pull then merge
sudo hg merge  (?)
sudo hg pull  # no branch name. y ?
sudo hg add ...
sudo hg ci -m "abc" # no file list here. if list file as normal commit use => error
sudo hg push

hg id -i   # see current revision (hash)
hg pull -u -R /path/to/repository

hg status --rev x:y
# Diff files only (?) between revision
hg diff -r 111 -r 222 # show content diff


Case study:
hg log -p -r 1133
In many case list changed in commit is quite helpful.

case 2:
guide https://stackoverflow.com/questions/4957721/mercurial-how-to-discard-all-local-changes-including-to-unversioned-files
Update, clean an old repo:
hg pull not work
$ hg pull
pulling from https://user@bitbucket.org/repo/kkk
abort: http authorization required for https://...

hg update -r [Branch_name] -C   do the trick :)

Aha, the real reason is that command $hg pull on Windows has issue with stored password (?). I have got this issue with SVN cli.
So we can set passwd in .hg/hgrc (similar .git/config) Or use URL pass
 hg pull https://user:passwd@bitbucket.org/company/repos
...
With GitLab you may be got blocked by Key only mode (no password over HTTP). But with Git we can specific key to use, so no password cache problem.

Does HG has config domain like Git (SSH) ? I think it have, so it may be another way to work around.

Color
https://gist.github.com/matagus/431474

HG new branch
https://stackoverflow.com/questions/13549931/create-a-new-branch-at-a-certain-revision

hg clean in case new branch (not pushed branch)
$hg update -C -r 123 may be work because -r is revision of branch/repo. Event new branch (not pushed) has at least a revision.
but $hg update -r [branch_name] -C not work since new branch not pushed yet.
A more clever way is simply clone previous content to restore change. Often we do not want to revert all change, only change that not as expected.
For example, download, copy from another folder, Bitbucket, pull from Filezilla  ...
In my case is restore plugin version, some plugin have to paid in order to control (update ...) and only team lead or someone have permission to do this.


Comments

Popular posts from this blog

Rand mm 10

https://stackoverflow.com/questions/2447791/define-vs-const Oh const vs define, many time I got unexpected interview question. As this one, I do not know much or try to study this. My work flow, and I believe of many programmer is that search topic only when we have task or job to tackle. We ignore many 'basic', 'fundamental' documents, RTFM is boring. So I think it is a trade off between the two way of study language. And I think there are a bridge or balanced way to extract both advantage of two method. There are some huge issue with programmer like me that prevent we master some technique that take only little time if doing properly. For example, some Red Hat certificate program, lesson, course that I have learned during Collage gave our exceptional useful when it cover almost all topic while working with Linux. I remember it called something like RHEL (RedHat Enterprise Linux) Certificate... I think there are many tons of documents, guide n books about Linux bu

Martin Fowler - Software Architecture - Making Architecture matter

  https://martinfowler.com/architecture/ One can appreciate the point of this presentation when one's sense of code smell is trained, functional and utilized. Those controlling the budget as well as developer leads should understand the design stamina hypothesis, so that the appropriate focus and priority is given to internal quality - otherwise pay a high price soon. Andrew Farrell 8 months ago I love that he was able to give an important lesson on the “How?” of software architecture at the very end: delegate decisions to those with the time to focus on them. Very nice and straight-forward talk about the value of software architecture For me, architecture is the distribution of complexity in a system. And also, how subsystems communicate with each other. A battle between craftmanship and the economics and economics always win... https://hackernoon.com/applying-clean-architecture-on-web-application-with-modular-pattern-7b11f1b89011 1. Independent of Frameworks 2. Testable 3. Indepe