Thread: Git migration

Git migration

From
Heikki Linnakangas
Date:
I finally got a copy of the CVS repository (thanks Marc Fournier!), and
got to try the git migration using cvs2git. That produces better results
than the built-in git-cvsimport tool I used earlier.

I pushed the result to github for review:

https://github.com/hlinnaka/psqlodbc-migration

Please take a look!

I used the following mapping of CVS usernames to Git authors:

author_transforms={
    'anoop' : ('Anoop Kumar', 'anoopk@pervasive-postgres.com'),
    'bmomjian' : ('Bruce Momjian', 'bruce@momjian.us'),
    'byronn' : ('Byron Nikolaidis', 'byronn@insightdist.com'),
    'dpage' : ('Dave Page', 'dpage@pgadmin.org'),
    'hinoue' : ('Hiroshi Inoue', 'inoue@tpf.co.jp'),
    'h-saito' : ('Hiroshi Saito', 'hiroshi@winpg.jp'),
    'peter' : ('Peter Eisentraut', 'peter_e@gmx.net'),
    'scrappy' : ('Marc G. Fournier', 'scrappy@hub.org'),
    'tgl' : ('Tom Lane', 'tgl@sss.pgh.pa.us'),
    'thomas' : ('Thomas G. Lockhart', 'lockhart@fourpalms.org'),
    'ishii' : ('Tatsuo Ishii', 'ishii@postgresql.org'),
    'luf' : ('Ludek Finstrle', 'luf@pzkagis.cz'),
      }

I grabbed the email addresses from the pgfoundry developer list, and
from recent postings from the authors, and from the similar list that
was used in the main PostgreSQL repository conversion. Please check your
own email address and spelling of your name, and let me know if you want
to use something else.

I used the attached script to compare the tips of all the CVS branches
and tags with the corresponding branches and tags in git. The only
difference I found was this:

##### Comparing REL-08_02_0500 #####
diff -u -N -r -x CVS /tmp/gitver/psqlodbc.h psqlodbc/psqlodbc.h
--- /tmp/gitver/psqlodbc.h      2007-09-21 09:36:28.000000000 +0300
+++ psqlodbc/psqlodbc.h 2013-04-15 22:32:44.094382349 +0300
@@ -5,7 +5,7 @@
    *
    * Comments:           See "notice.txt" for copyright and license
information.
    *
- * $Id: psqlodbc.h,v 1.121 2007/12/26 13:28:36 hinoue Exp $
+ * $Id: psqlodbc.h,v 1.120 2007/06/02 05:32:19 hinoue Exp $
    *
    */

##### end comparison #####

I'm not sure why that happened, but I think that's acceptable as the
difference is only in the $Id$ CVS keyword.

Also, cvs2git created a few "manufactured" commits, where branches and
tags have been created. Like this:

commit 0b63b2ec3a5f80f20d7982a13c6255bd6a239887
Author: cvs2svn <cvs2svn>
Date:   Thu Jun 30 09:30:39 2005 +0000

      This commit was manufactured by cvs2svn to create branch 'PRE_LIBPQ'.

Most of them are actually quite pointless, as the commits don't change
any files. We could remove them, but they're harmless and not too ugly,
so I'm inclined to just leave them as is.

So, here's my proposal on how to proceed with this:

1. Create a new official git repository at git.postgresql.org for the
project, called "psqlodbc".

2. Copy the repository that I pushed to github for review to
git.postgresql.org.

3. After the migration, perform one commit on master branch to remove
CVS keywords from all files.

Any objections? I could do this pretty much immediately, but should
probably leave some time for people to review the repository and raise
any comments. So, how about I do this on Friday, April 19th?

- Heikki


Attachment

Re: Git migration

From
"Inoue, Hiroshi"
Date:
(2013/04/16 5:00), Heikki Linnakangas wrote:
> I finally got a copy of the CVS repository (thanks Marc Fournier!), and
> got to try the git migration using cvs2git. That produces better results
> than the built-in git-cvsimport tool I used earlier.
>
> I pushed the result to github for review:
>
> https://github.com/hlinnaka/psqlodbc-migration
>
> Please take a look!
>
> I used the following mapping of CVS usernames to Git authors:
>
> author_transforms={
>     'anoop' : ('Anoop Kumar', 'anoopk@pervasive-postgres.com'),
>     'bmomjian' : ('Bruce Momjian', 'bruce@momjian.us'),
>     'byronn' : ('Byron Nikolaidis', 'byronn@insightdist.com'),
>     'dpage' : ('Dave Page', 'dpage@pgadmin.org'),
>     'hinoue' : ('Hiroshi Inoue', 'inoue@tpf.co.jp'),
>     'h-saito' : ('Hiroshi Saito', 'hiroshi@winpg.jp'),
>     'peter' : ('Peter Eisentraut', 'peter_e@gmx.net'),
>     'scrappy' : ('Marc G. Fournier', 'scrappy@hub.org'),
>     'tgl' : ('Tom Lane', 'tgl@sss.pgh.pa.us'),
>     'thomas' : ('Thomas G. Lockhart', 'lockhart@fourpalms.org'),
>     'ishii' : ('Tatsuo Ishii', 'ishii@postgresql.org'),
>     'luf' : ('Ludek Finstrle', 'luf@pzkagis.cz'),
>       }
>
> I grabbed the email addresses from the pgfoundry developer list, and
> from recent postings from the authors, and from the similar list that
> was used in the main PostgreSQL repository conversion. Please check your
> own email address and spelling of your name, and let me know if you want
> to use something else.>
> I used the attached script to compare the tips of all the CVS branches
> and tags with the corresponding branches and tags in git. The only
> difference I found was this:
>
> ##### Comparing REL-08_02_0500 #####
> diff -u -N -r -x CVS /tmp/gitver/psqlodbc.h psqlodbc/psqlodbc.h
> --- /tmp/gitver/psqlodbc.h      2007-09-21 09:36:28.000000000 +0300
> +++ psqlodbc/psqlodbc.h 2013-04-15 22:32:44.094382349 +0300
> @@ -5,7 +5,7 @@
>     *
>     * Comments:           See "notice.txt" for copyright and license
> information.
>     *
> - * $Id: psqlodbc.h,v 1.121 2007/12/26 13:28:36 hinoue Exp $
> + * $Id: psqlodbc.h,v 1.120 2007/06/02 05:32:19 hinoue Exp $
>     *
>     */
>
> ##### end comparison #####
>
> I'm not sure why that happened, but I think that's acceptable as the
> difference is only in the $Id$ CVS keyword.
>
> Also, cvs2git created a few "manufactured" commits, where branches and
> tags have been created. Like this:
>
> commit 0b63b2ec3a5f80f20d7982a13c6255bd6a239887
> Author: cvs2svn <cvs2svn>
> Date:   Thu Jun 30 09:30:39 2005 +0000
>
>       This commit was manufactured by cvs2svn to create branch 'PRE_LIBPQ'.
>
> Most of them are actually quite pointless, as the commits don't change
> any files. We could remove them, but they're harmless and not too ugly,
> so I'm inclined to just leave them as is.
>
> So, here's my proposal on how to proceed with this:
>
> 1. Create a new official git repository at git.postgresql.org for the
> project, called "psqlodbc".
>
> 2. Copy the repository that I pushed to github for review to
> git.postgresql.org.
>
> 3. After the migration, perform one commit on master branch to remove
> CVS keywords from all files.
>
> Any objections? I could do this pretty much immediately, but should
> probably leave some time for people to review the repository and raise
> any comments. So, how about I do this on Friday, April 19th?

As Vadim pointed out, the CVS repository at http://pgfoundry.org/scm/
doesn't work. I think we had better migrate to Git ASAP.

regards,
Hiroshi Inoue






Re: Git migration

From
Alvaro Herrera
Date:
Heikki Linnakangas wrote:

> I used the following mapping of CVS usernames to Git authors:
>
> author_transforms={
>    'anoop' : ('Anoop Kumar', 'anoopk@pervasive-postgres.com'),
>    'bmomjian' : ('Bruce Momjian', 'bruce@momjian.us'),
>    'byronn' : ('Byron Nikolaidis', 'byronn@insightdist.com'),
>    'dpage' : ('Dave Page', 'dpage@pgadmin.org'),
>    'hinoue' : ('Hiroshi Inoue', 'inoue@tpf.co.jp'),
>    'h-saito' : ('Hiroshi Saito', 'hiroshi@winpg.jp'),
>    'peter' : ('Peter Eisentraut', 'peter_e@gmx.net'),
>    'scrappy' : ('Marc G. Fournier', 'scrappy@hub.org'),
>    'tgl' : ('Tom Lane', 'tgl@sss.pgh.pa.us'),
>    'thomas' : ('Thomas G. Lockhart', 'lockhart@fourpalms.org'),
>    'ishii' : ('Tatsuo Ishii', 'ishii@postgresql.org'),
>    'luf' : ('Ludek Finstrle', 'luf@pzkagis.cz'),
>      }

There are commits by users "momjian", "petere", "inoue"; you probably
want some more lines there.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services


Re: Git migration

From
Heikki Linnakangas
Date:
On 16.04.2013 07:30, Alvaro Herrera wrote:
> Heikki Linnakangas wrote:
>
>> I used the following mapping of CVS usernames to Git authors:
>>
>> ...
>
> There are commits by users "momjian", "petere", "inoue"; you probably
> want some more lines there.

Thanks, added.

I pushed a new revision to the same github repository. I also decided
the empty manufactured commits after all. Some non-empty manufactured
commits still remain, but that's ok.

Please take a look at the updated repository at
https://github.com/hlinnaka/psqlodbc-migration.

- Heikki


Re: Git migration

From
Heikki Linnakangas
Date:
On 16.04.2013 06:47, Inoue, Hiroshi wrote:
> (2013/04/16 5:00), Heikki Linnakangas wrote:
>> Any objections? I could do this pretty much immediately, but should
>> probably leave some time for people to review the repository and raise
>> any comments. So, how about I do this on Friday, April 19th?
>
> As Vadim pointed out, the CVS repository at http://pgfoundry.org/scm/
> doesn't work. I think we had better migrate to Git ASAP.

Ok, sounds good to me. I just requested a new repository at
git.postgresql.org. Assuming no-one finds a problem with the converted
repository, I'll push this to git.postgresql.org as soon as the new
repository gets approved.

I'm going to need the community ids of all current committers so that I
can grant permissions to the new repository. So, committers: please send
me an email with your community id off-list.

- Heikki


Re: Git migration

From
Alvaro Herrera
Date:
Heikki Linnakangas wrote:
> On 16.04.2013 07:30, Alvaro Herrera wrote:
> >Heikki Linnakangas wrote:
> >
> >>I used the following mapping of CVS usernames to Git authors:
> >>
> >>...
> >
> >There are commits by users "momjian", "petere", "inoue"; you probably
> >want some more lines there.
>
> Thanks, added.
>
> I pushed a new revision to the same github repository. I also
> decided the empty manufactured commits after all.

You decided the commits ...?

> Some non-empty manufactured commits still remain, but that's ok.

Yeah, there are only two of them and they look pretty harmless.

> Please take a look at the updated repository at
> https://github.com/hlinnaka/psqlodbc-migration.

Looks pretty good, yes.

There are a couple of bogus chars in these commits:

commit bc5d1a6dfa0a2cb9c530347e46a46186dd45fac8
Author: Dave Page <dpage@pgadmin.org>
Date:   Thu Dec 8 09:11:28 2005 +0000

commit ab41b413019311f60decefa46d36791704502d50
Author: Dave Page <dpage@pgadmin.org>
Date:   Fri Apr 9 18:13:12 2004 +0000

commit f6630a50869c33042abbd4491e1ac5b178208ece
Author: Hiroshi Inoue <inoue@tpf.co.jp>
Date:   Wed Nov 12 10:15:21 2003 +0000

Looks like the conversion considered commit messages to be in UTF8 but
they are actually in some single-byte encoding.  Not sure if this is
worth tweaking further.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services


Re: Git migration

From
Heikki Linnakangas
Date:
On 16.04.2013 17:03, Alvaro Herrera wrote:
> Heikki Linnakangas wrote:
>> On 16.04.2013 07:30, Alvaro Herrera wrote:
>> I pushed a new revision to the same github repository. I also
>> decided the empty manufactured commits after all.
>
> You decided the commits ...?

Oops. Decided to remove..

>> Some non-empty manufactured commits still remain, but that's ok.
>
> Yeah, there are only two of them and they look pretty harmless.

There's a few more than that:

commit dbe2f69ecc2c143e6af95fa7410fc7c6dd0260f9
Merge: 425717d 8cff767
Author: cvs2svn <cvs2svn>
Date:   Tue Jan 31 13:31:48 2006 +0000

     This commit was manufactured by cvs2svn to create branch 'REL-
     07_03_ENHANCED'.

commit 4b2cf98131c7980174200d74ac6df915b8140ae8
Merge: 287da4d 9e66311
Author: cvs2svn <cvs2svn>
Date:   Thu Dec 8 08:57:43 2005 +0000

     This commit was manufactured by cvs2svn to create branch 'REL-
     07_03_ENHANCED'.

commit 246733da95d7637ce7ec5b563d4692badb9d4050
Merge: 1a9f63e ebe86c9
Author: cvs2svn <cvs2svn>
Date:   Fri Nov 29 13:27:31 2002 +0000

     This commit was manufactured by cvs2svn to create tag 'REL-07_02_0005'.

commit 1e5f1b6101e387a1fbd73be0eb1f1ee3050973e0
Merge: 20b7bbe 843c5e9
Author: cvs2svn <cvs2svn>
Date:   Thu May 15 16:06:22 2003 +0000

     This commit was manufactured by cvs2svn to create tag 'REL-07_03_0100'.

commit 48261b56e4728384bc8b57ab4f3b9ca17cf0126c
Author: cvs2svn <cvs2svn>
Date:   Fri Jan 6 21:36:59 2006 +0000

     This commit was manufactured by cvs2svn to create tag 'REL-07_03_0257'.

  installer/README.txt    |   17 --
  installer/new.bmp       |  Bin 318 -> 0 bytes
  installer/psqlodbc.wxs  |  463
-----------------------------------------------
  installer/psqlodbcm.wxs |   67 -------
  installer/up.bmp        |  Bin 318 -> 0 bytes
  installer/upgrade.bat   |   23 ---
  readme.txt              |   85 ---------
  7 files changed, 655 deletions(-)

commit 9dd9f238f0f3e33e04e7db1ab5bc9ac13a9ad1fe
Author: cvs2svn <cvs2svn>
Date:   Wed Feb 22 15:12:35 2006 +0000

     This commit was manufactured by cvs2svn to create tag 'REL-07_03_0260'.

  installer/Make.bat      |   41 ----
  installer/README.txt    |   17 --
  installer/banner.bmp    |  Bin 94554 -> 0 bytes
  installer/lgpl.rtf      |  526
-----------------------------------------------
  installer/new.bmp       |  Bin 318 -> 0 bytes
  installer/psqlodbc.wxs  |  436 ---------------------------------------
  installer/psqlodbcm.wxs |   56 -----
  installer/up.bmp        |  Bin 318 -> 0 bytes
  installer/upgrade.bat   |   23 ---
  9 files changed, 1099 deletions(-)

commit 61f9d8e6743a4f2cf535a59757495189ee0a66c2
Author: cvs2svn <cvs2svn>
Date:   Fri Sep 21 06:36:28 2007 +0000

     This commit was manufactured by cvs2svn to create tag 'REL-08_02_0500'.

  config/c-library.m4 |  299
---------------------------------------------------
  config/general.m4   |  152 --------------------------
  2 files changed, 451 deletions(-)


I'm not sure why we end up with these, but I'm happy to leave them like
that.

> There are a couple of bogus chars in these commits:
>
> commit bc5d1a6dfa0a2cb9c530347e46a46186dd45fac8
> Author: Dave Page<dpage@pgadmin.org>
> Date:   Thu Dec 8 09:11:28 2005 +0000
>
> commit ab41b413019311f60decefa46d36791704502d50
> Author: Dave Page<dpage@pgadmin.org>
> Date:   Fri Apr 9 18:13:12 2004 +0000
>
> commit f6630a50869c33042abbd4491e1ac5b178208ece
> Author: Hiroshi Inoue<inoue@tpf.co.jp>
> Date:   Wed Nov 12 10:15:21 2003 +0000
>
> Looks like the conversion considered commit messages to be in UTF8 but
> they are actually in some single-byte encoding.  Not sure if this is
> worth tweaking further.

Thanks, I'll take a look.

- Heikki


Re: Git migration

From
Alvaro Herrera
Date:
Heikki Linnakangas wrote:
> On 16.04.2013 17:03, Alvaro Herrera wrote:
> >Heikki Linnakangas wrote:

> >>Some non-empty manufactured commits still remain, but that's ok.
> >
> >Yeah, there are only two of them and they look pretty harmless.
>
> There's a few more than that:

Ah.  I only looked for those in branches and forgot about tags.  These
ones:

> commit 48261b56e4728384bc8b57ab4f3b9ca17cf0126c
> Author: cvs2svn <cvs2svn>
> Date:   Fri Jan 6 21:36:59 2006 +0000

> commit 9dd9f238f0f3e33e04e7db1ab5bc9ac13a9ad1fe
> Author: cvs2svn <cvs2svn>
> Date:   Wed Feb 22 15:12:35 2006 +0000

> commit 61f9d8e6743a4f2cf535a59757495189ee0a66c2
> Author: cvs2svn <cvs2svn>
> Date:   Fri Sep 21 06:36:28 2007 +0000

> I'm not sure why we end up with these, but I'm happy to leave them
> like that.

They look a bit like rewinding the history to get rid of certain files
in the tags.  Maybe it'd be easy to add the tags to those files so that
they don't have to be removed at all?  However, they are not large
removals so probably not a big deal.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services


Re: Git migration

From
Heikki Linnakangas
Date:
On 16.04.2013 17:03, Alvaro Herrera wrote:
> Heikki Linnakangas wrote:
>> Please take a look at the updated repository at
>> https://github.com/hlinnaka/psqlodbc-migration.
>
> Looks pretty good, yes.
>
> There are a couple of bogus chars in these commits:

Thanks for checking!

> commit bc5d1a6dfa0a2cb9c530347e46a46186dd45fac8
> Author: Dave Page<dpage@pgadmin.org>
> Date:   Thu Dec 8 09:11:28 2005 +0000

This seems to be in Win1250 encoding. Fixed.

> commit ab41b413019311f60decefa46d36791704502d50
> Author: Dave Page<dpage@pgadmin.org>
> Date:   Fri Apr 9 18:13:12 2004 +0000

The problematic string in the commit message is "Cyrille Ch?p?lov". The
question marks are there in the CVS ,v file already, so the damage to
the characters was already when the CVS commit was made. I'm inclined to
leave it as it is, to be as close to the CVS repository as possible. Or
we could fix that commit message manually; they are supposed to be "é"
characters.

> commit f6630a50869c33042abbd4491e1ac5b178208ece
> Author: Hiroshi Inoue<inoue@tpf.co.jp>
> Date:   Wed Nov 12 10:15:21 2003 +0000

There is a byte 0x81 at the beginning of line, on some lines of the
commit message. I don't understand how that happened, but I'll convert
them to spaces.

I ran the migration again, with fixes for the two of those issues, and
pushed the result to the github repository again. Attached are the
scripts I used, if someone is interested. They're a bit rough, but
doesn't matter as this is a one-off thing..

- Heikki

Attachment

Re: Git migration

From
Heikki Linnakangas
Date:
I have now pushed the migrated repository to git.postgresql.org, as
project psqlodbc. See:

http://git.postgresql.org/gitweb/?p=psqlodbc.git;a=summary

I have heard no objections, so let's consider this the official
repository from now on. Hooray!

I'll copy the tarball of the CVS repository somewhere for archive
purposes, and see if I can update the pgfoundry pages to point to the
new git repository. Next, I'll do a commit to remove the CVS keywords,
and then start committing various real patches that have been pending
for a long time.

Committers: please email me your community login ID, so that I can give
you permissions.

- Heikki