[myhdl-list] Distributed revision control for MyHDL
Brought to you by:
jandecaluwe
|
From: Jan D. <ja...@ja...> - 2008-05-29 19:27:02
|
Hello:
In the past I've called subversion a "winning solution" for
revision control and I have been using it for MyHDL.
Despite this, I never truly liked it. In particular, the way
to do tags and branches ("everything is a copy") seems attractive
at first, but is very unpractical, to the point of being unusable.
Recently I have understood that there are really 2 types of
revision control systems: centralized versus distributed. While
subversion is a winner among centralized systems, I have now
become convinced that distributed is the wave of the future.
I had experience with darcs (a distributed system) before, but
I never found that very convincing. What triggered my thinking
were 2 things:
- a google video from Linus Torvalds about git
- a very positive experience with git in a real design project
With git, I found that after some days I was routinely doing
things that I had considered "advanced" with others systems,
such as short-lived feature branches.
Also, it is clear that distributed is much more powerful and
versatile in an open-source environment. Some issues inherent
to centralized (e.g. need for a connection to a server) simply
go away.
After this, I decided I wanted something like this for MyHDL.
Besides git, only 1 other system is "tolerated" by Linus, and
that is mercurial. As this is a Python-based system (unlike git)
and as many high-profile projects are converting to it, you can
guess what choice I made ... I think git is probably more
powerful at this point, but mercurial is probably somewhat
easier to learn and handle.
mercurial contains a convert tool that can convert subversion
repositories, which uses the subversion Python bindings. I had
to do quite some hacking (recompiling subversion with some libraries
disabled) before the conversion worked, but it finally did.
Then I followed a recipe to publish the repo on sourceforge.
You can see the result here:
http://myhdl.sourceforge.net/hg/myhdl
You can use this to browse the repo, but also for other
things - but this I will explain in a subsequent post.
Jan
--
Jan Decaluwe - Resources bvba - http://www.jandecaluwe.com
Kaboutermansstraat 97, B-3000 Leuven, Belgium
From Python to silicon:
http://myhdl.jandecaluwe.com
|