[Kolab-devel] CVS to Mercurial conversion

Gunnar Wrobel wrobel at kolabsys.com
Wed Sep 1 09:56:43 CEST 2010


Hi!

We are finally getting ready to migrate from CVS to Mercurial. There  
are two things that might need some feedback from the community:

  - Conversion of CVS commiter IDs to Mercurial commiter IDs
  - Conversion of CVS branch and tag names to Mercurial branch and tag names

I attached the relevant information. Both files list the commands I  
used to extract information from our CVS repository so I hope the  
approach is transparent. Please speak up if you find flaws in these  
commands.

For the branch and tag names I just included by personal opinion on  
how these tags and branch names could be named in mercurial. Feel free  
to disagree and add alternative suggestions.

The basic ideas behind my tag suggestions:

  - Use the "server" prefix to identify the product. So far CVS just holds the
    "server" product. But it is likely that there will be variants of this
    product in the future (e.g. "hosted" or maybe "debian" or some such).
  - Use the version number in the tag.

So the most recent release tag would be "server.2.2.4".

There was nothing specific to my branch name suggestions. I'm used to  
capitals because of the Horde project but to be honest I don't know if  
there exist specific conventions concerning branch names. I would  
suggest to also have the product name in there as suggested for tag  
names, too.

If we agree on a common tag/branch naming pattern I'd like to document  
this in the wiki as a point of reference for the years to come.

The more important part than these conventions are the names of people  
with Kolab CVS commit rights. In CVS these were short user names while  
we will use the full name + mail address for mercurial. So it was  
necessary to establish a mapping between the two. I did try my best to  
compile an accurate list which I attached. Not all of this information  
will be accurate though and we need your help to correct it.  
Especially if you are a person with Kolab CVS commit access.

I have several questions concerning this list:

  - Is the listed mail address the correct one?
  - I tried identifying the most recent mail addresses for the persons with
    commit access. Is this what we want to use or should we use old  
addresses if
    we are certain those were being used when the person was actively  
working on
    the Kolab server?
  - Should we send a mail to all the people on the list and get verification of
    the addresses?
  - Should we use Umlauts in the names or not?

I felt like a human spam bot when compiling this list :)

We'd like to get the whole conversion thing completed as quickly as  
possible. So it would be nice if we could get responses during this  
week.

Thomas: To which extent is it possible to correct any of the  
information listed here *after* the conversion has been done?

Cheers,

Gunnar

--
Gunnar Wrobel
Developer, Kolab Systems AG

e: wrobel at kolabsys.com
t: +49 700 6245 0000
w: http://www.kolabsys.com

pgp: 9703 43BE

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
-------------- next part --------------
Extracted the available CVS tags using:

cvs log -h | sed -n '/symbolic names:/,/keyword substitution:/p' | grep -v "keyword substitution" | grep -v "symbolic names" | grep -v -e "0\.[0-9]\+$" | sed -e 's/^\s*\([^ ]*\):.*/\1/' | sort | uniq

The suggested mercurial tag name is listed after the colon. This is
just my suggestion. Feel free to suggest an alternative.

-TAGS---------------------------
V1-0-BETA-2:server.1.0.beta2
kdab: server.2.0.pre_kolabd.1
kolab-server-2-0-4:server.2.0.4
kolab-server-2-1-0:server.2.1.0
kolab-server-2-1-beta-2:server.2.1.beta2
kolab-server-2-1-beta-3:server.2.1.beta3
kolab-server-2-1-beta-4:server.2.1.beta4
kolab-server-2-1-rc-1:server.2.1.rc1
kolab-server-2-1-rc-2:server.2.1.rc2
kolab-server-2-2-0:server.2.2.0
kolab-server-2-2-1:server.2.2.1
kolab-server-2-2-1-beta-1:server.2.2.1.beta1
kolab-server-2-2-1-rc-1:server.2.2.1.rc1
kolab-server-2-2-2:server.2.2.2
kolab-server-2-2-3:server.2.2.3
kolab-server-2-2-3-rc-1:server.2.2.3.rc1
kolab-server-2-2-4:server.2.2.4
kolab-server-2-2-beta-2:server.2.2.beta2
kolab-server-2-2-beta-3:server.2.2.beta3
kolab-server-2-2-rc-1:server.2.2.rc1
kolab-server-2-2-rc-2:server.2.2.rc2
kolab-server-2-2-rc-3:server.2.2.rc3
kolab2:server.2.0.pre_kolabd.2
kolab_2_0_tag:server.2.0
kroupware:server.1.0
pre_autoperl:server.2.0.pre_perlkolab
proko2_m1:server.1.0.proko2.m1
proko2_m2c:server.1.0.proko2.m2
proko2_m3::server.1.0.proko2.m3
--------------------------------


Extracted the available CVS branches using:

cvs log -h | sed -n '/symbolic names:/,/keyword substitution:/p' | grep -v "keyword substitution" | grep -v "symbolic names" | grep -e "0\.[0-9]\+$" | sed -e 's/^\s*\([^ ]*\):.*/\1/' | sort | uniq

The suggested mercurial branch name is listed after the colon. This is
just my suggestion. Feel free to suggest an alternative.

-BRANCHES-----------------------
KOLAB_1_0: SERVER_1_0
KOLAB_1_1: SERVER_1_1
kolab_2_0_branch: SERVER_2_0
kolab_2_1_branch: SERVER_2_1
kolab_2_2_branch: SERVER_2_3
suc_branch: SERVER_CUST_SUC
--------------------------------
-------------- next part --------------
Extracted the authors in each module by running:

cvs log . | grep "author:" | sed -e 's/.*author: \([^;]*\).*/\1/' | sort | uniq > commiters.txt

Concatenated the authors from the different modules by:

cat */commiters.txt | sort | uniq > commiters_all_modules.txt

Finally search different resources on the net for the most probable
commiter names and mail addresses. Remarks added in [].

-START----------------------------------------------------------------------------------------------------
achim=Achim Frank <achim.frank at erfrakon.de>
bernhard=Bernhard Reiter <bernhard at intevation.de>
bh=Bernhard Herzog <bh at intevation.de>
bo=Bo Thorsen <bo at fioniasoftware.dk>
danimo=Daniel Molkentin <daniel at molkentin.de>
david=David Faure <dfaure at kdab.com> [only commited in module "doc"]
emanuel=Emanuel Schuetze <emanuel at intevation.de> [Umlaut: Schütze, only commited in module "doc"]
greve=Georg Greve <greve at kolabsys.com> [only commited in module "doc"]
gunnar=Gunnar Wrobel <wrobel at pardus.de>
jan=Jan-Oliver Wagener <jan-oliver.wagner at intevation.de> [most likely candidate]
khruskowski=Karl-Heinz Ruskowski <khruskowski at intevation.de>
ljohansen= [?, no clue who that might be, only commited in module "doc"]
ludwig=Ludwig Reiter <ludwig.reiter at intevation.de> [only commited in module "utils"]
marc=Marc Mutz <marc at kdab.com> [most likely candidate, only commited in module "doc"]
marcus=Marcus Huewe <suse-tux at gmx.de> [Umlaut: Marcus Hüwe]
martin=Martin Konold <martin.konold at erfrakon.de>
mathieu=Mathieu Parent <math.parent at gmail.com>
michel=Michel Boyer de la Giroday <michel at kdab.com> [only commited in module "doc"]
richard=Richard Bos <ml at radoeka.nl>
romain=Romain Pokrzywka <romain at kdab.com>
schreiber=Arne Schreiber<arne at kdab.com>
steffen=Steffen Hansen <steffen at kdab.com>
stephan=Stephan Buys <main at stephanbuys.com> [Is this the current mail address?]
stuart=Stuart Binge <s.binge at codefusion.co.za> [Umlaut: Bingé] 
tassilo=Tassilo Erlewein <tassilo.erlewein at erfrakon.de>
thomas=Thomas Arendsen Hein  <thomas at intevation.de>
till=Till Adam <till at kdab.net>
tobias= [?, no clue who that might be, only commited in module "doc"]
torsten=Torsten Irlaender <torsten.irlaender at intevation.de> [only commited in module "utils" and "doc"]
wilde=Sascha Wilde  <wilde at intevation.de>
-END-------------------------------------------------------------------------------------------------------

Clean this up by running:

cat commiters_all_modules.txt | sed -n '/-START/,/-END/p' | grep -v -- "----" | sed -e 's/^\([^\[]*\) \[.*/\1/'


More information about the devel mailing list