OpenJDK (Java) migrating from Mercurial?

Craig Ozancin c.ozancin at gmail.com
Mon Nov 18 04:12:33 UTC 2019


On Sun, Nov 17, 2019 at 8:29 PM Bob Hood <bhood2 at comcast.net> wrote:

> On 11/17/2019 8:33 AM, Craig Ozancin wrote:
>
>
> What git doesn't provide:
>
> - revsets
> - hg phases
> - hg evolve
>
>
> And let us not forget:  Named Branches.
>
> I've used (and relied on) this feature in all the SCMs I've used right up
> to Mercurial.  I never got the hang of using bookmarks to manage multiple
> versions of a product; named branches makes it very clean and easy.
>
> Unless git adds that (and they won't), I would have a hard time even
> considering adopting it.
>

It seems that every time I come across a git vs mercurial comparison on the
internet (including some withing the past year) they will inevitably refer
to how hard mercurial branching is to git. They are comparing gits light
weight branching with mercurial named branching. They are quite different
and serve different usages. Named branches are great for long term needs.
If named branches where are that mercurial offered, then maybe that would
be true. However, mercurial has a wealth of branching options:

- Named branches
- bookmarks (very similar to gits branching)
- The new topic brancing (very short lived transient branches that will
delete themselves when their content is published)
- clone branching
- anonymous branching (moving to a change set and adding a new changeset --
which in git will give you a detached head and the possibility of it being
garbage collected)

I personally use a number of these.

- I use named branches for stable content.
- I use clone branching for new features (I clone the repository, do my
work, pull updates from the parent and when completed push the changes)
- I use anonymous branches when i need to do a quick fix off a specific
change-set. I then use rebate and fold it in.
- I use bookmarks for experimental work (in a cloned branch)

I tie this all together using evolve and a master local repository I call
staging. The thought of doing this using git seems very painful and is
likely to double or triple my work. It would require me to move to a more
cumbersome and primitive workflow.

I did create a bash script call all that I use to manage multiple
repositories. I have hooked it into mercurial using an alias. I can. for
example, do:

hg all status

and it will show me the status for all repositories it fines under the
current directory.

hg all pull --update --rebase is another I commonly use.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial/attachments/20191117/fa0aa31f/attachment-0002.html>


More information about the Mercurial mailing list