Git out of sync vs. CVS

Lists: pgsql-hackers
From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Git out of sync vs. CVS
Date: 2010-01-17 19:05:43
Message-ID: 1263755143.11833.13.camel@vanquo.pezone.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Maybe I'm hallucinating and someone could check this in their
environment, but it appears to me that the Git repository is missing
parts of two non-recent commits. See attached patch.

Attachment Content-Type Size
cvs-git.diff text/x-patch 3.9 KB

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Git out of sync vs. CVS
Date: 2010-01-17 19:50:23
Message-ID: 9837222c1001171150p4a2affabs1794332983b41064@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

2010/1/17 Peter Eisentraut <peter_e(at)gmx(dot)net>:
> Maybe I'm hallucinating and someone could check this in their
> environment, but it appears to me that the Git repository is missing
> parts of two non-recent commits.  See attached patch.

Not having looked at the repo in detail, but I bet this happened
because the git mirror grabbed it's snapshot in the middle of a cvs
commit with multiple files. Since cvs doesn't have atomic commits, I
think that kind of thing can happen. Does that seem possible wrt these
commits specifically?

I don't really know how to fix that. It's kind of hard to do
transaction safe replication from a system without transactions ;)

As for fixing it, I guess we can try the
rewind-to-commit-before-this-and-rerun. That'll break people who have
branched after, but last time it seemed that most peoples git clients
would clean that up automatically. Which commits are these exactly?

--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Git out of sync vs. CVS
Date: 2010-01-17 20:34:12
Message-ID: 1263760452.11833.45.camel@vanquo.pezone.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On sön, 2010-01-17 at 20:50 +0100, Magnus Hagander wrote:
> As for fixing it, I guess we can try the
> rewind-to-commit-before-this-and-rerun. That'll break people who have
> branched after, but last time it seemed that most peoples git clients
> would clean that up automatically. Which commits are these exactly?

These two belong together:

http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/start-scripts/freebsd?rev=1.5
http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/start-scripts/osx/PostgreSQL?rev=1.4

And this is a separate one:

http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/config/python.m4?rev=1.17


From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Git out of sync vs. CVS
Date: 2010-01-17 20:57:45
Message-ID: 9837222c1001171257i28418646l39d3be3cd9a2c112@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

2010/1/17 Peter Eisentraut <peter_e(at)gmx(dot)net>:
> On sön, 2010-01-17 at 20:50 +0100, Magnus Hagander wrote:
>> As for fixing it, I guess we can try the
>> rewind-to-commit-before-this-and-rerun. That'll break people who have
>> branched after, but last time it seemed that most peoples git clients
>> would clean that up automatically. Which commits are these exactly?
>
> These two belong together:
>
> http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/start-scripts/freebsd?rev=1.5
> http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/start-scripts/osx/PostgreSQL?rev=1.4
>
> And this is a separate one:
>
> http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/config/python.m4?rev=1.17

Well, if we're going to roll something back in git, it's the git
comits that are interesting... To figure out how far back in time to
go.

--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Git out of sync vs. CVS
Date: 2010-01-17 21:42:39
Message-ID: 11345.1263764559@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Magnus Hagander <magnus(at)hagander(dot)net> writes:
> 2010/1/17 Peter Eisentraut <peter_e(at)gmx(dot)net>:
>> Maybe I'm hallucinating and someone could check this in their
>> environment, but it appears to me that the Git repository is missing
>> parts of two non-recent commits. See attached patch.

> Not having looked at the repo in detail, but I bet this happened
> because the git mirror grabbed it's snapshot in the middle of a cvs
> commit with multiple files. Since cvs doesn't have atomic commits, I
> think that kind of thing can happen.

That would explain a single CVS commit appearing as two separate commits
in the git history; but it hardly seems like an acceptable excuse for
missing changes altogether, which is what I think Peter said he saw.

regards, tom lane


From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Git out of sync vs. CVS
Date: 2010-01-17 21:53:47
Message-ID: 9837222c1001171353u7a654729k230e2286f84379e4@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

2010/1/17 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
> Magnus Hagander <magnus(at)hagander(dot)net> writes:
>> 2010/1/17 Peter Eisentraut <peter_e(at)gmx(dot)net>:
>>> Maybe I'm hallucinating and someone could check this in their
>>> environment, but it appears to me that the Git repository is missing
>>> parts of two non-recent commits.  See attached patch.
>
>> Not having looked at the repo in detail, but I bet this happened
>> because the git mirror grabbed it's snapshot in the middle of a cvs
>> commit with multiple files. Since cvs doesn't have atomic commits, I
>> think that kind of thing can happen.
>
> That would explain a single CVS commit appearing as two separate commits
> in the git history; but it hardly seems like an acceptable excuse for
> missing changes altogether, which is what I think Peter said he saw.

It's likely the combination of that, and the cvs to git sync script
not considering that this can happen. So when it does the second pass
(once it's all been synced) it detects it as a single commit, and
doesn't re-import it.

We've seen this happen before.

--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/