[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 |