threads / discuss / 12906

PVCS (or RCS) importer for Git?

Subject: PVCS (or RCS) importer for Git?

## tl;dr

3 messages between Mar 28, 2008 and Mar 31, 2008.

replies: 2people: 2as markdown or json

Peter Karlsson· Mar 28, 2008, 16:17 UTC · lore
Hi!

Has anyone written an importer to import sources stored in PVCS into Git? Or perhaps an RCS importer that actually uses the RCS binaries (ci, co, rlog) instead of parsing the ,v files directly?

I am looking at exporting some PVCS sources into Git, but my attempts so far hasn't got very far, and I was thinking that maybe someone else had done something similar?

One problem with PVCS is that it, like RCS, has file-local revision numbering, and that it does not have named branches, the branches are on the same file-local revisions, so there is no way of telling what a branch is supposed to point to, except by looking at tags set to what the branch created.

RCS is quite similar (PVCS seems to be designed to be a RCS clone), so perhaps the problem has already been solved?

I have had some limited success by running a the pvcs2rcs.pl script from CVS's sources and converting that to Git using cvs2svn, but I believe the result could be better if I converted directly.

-- 
\\// Peter - http://www.softwolves.pp.se/
Johannes Schindelin· Mar 28, 2008, 16:33 UTC · re: Peter Karlsson · lore

Re: PVCS (or RCS) importer for Git?

Hi,
On Fri, 28 Mar 2008, Peter Karlsson wrote:
> Has anyone written an importer to import sources stored in PVCS into
> Git?

I once tried, but apparently, there are different repository formats for PVCS. For example, pvcs2cvs did not work for me. IIRC I used a simple shell script to convert pvcs (using the mega-slow command line tools) to ,v files. Then I converted that to Git.

But it was pretty bad, the incremental update was broken more often than not.

And after a few days, it became apparent that I do not need a full import, but that a simple commit-to-git-after-a-pvcs-update would be sufficient.

> I have had some limited success by running a the pvcs2rcs.pl script from 
> CVS's sources and converting that to Git using cvs2svn, but I believe 
> the result could be better if I converted directly.

Judging from the problems of importing CVS to Git (which mostly stem from the file-versioning paradigm), I suggest not trying to be too clever, but convert it to cvs and use a good cvs importer, such as cvs2svn (which despite its name also imports into Git) or parsecvs.

Ciao, Dscho

Peter Karlsson· Mar 31, 2008, 06:26 UTC · re: Johannes Schindelin · lore

Re: PVCS (or RCS) importer for Git?

Johannes Schindelin:
> I once tried, but apparently, there are different repository formats
> for PVCS. For example, pvcs2cvs did not work for me.

Yeah, the format is binary. That is why I am trying to use the command-line tools.

> IIRC I used a simple shell script to convert pvcs (using the
> mega-slow command line tools) to ,v files.  Then I converted that to Git.

That is, more or less, what the pvcs2cvs script does. I've had some success with it.

> Judging from the problems of importing CVS to Git (which mostly stem
> from the file-versioning paradigm), I suggest not trying to be too
> clever, but convert it to cvs and use a good cvs importer, such as
> cvs2svn (which despite its name also imports into Git) or parsecvs.

Given that the PVCS history file ("trail") that I was trying to follow didn't quite work out, because there had been some direct manipulations of the PVCS repository that were not recorded there, I think that is the way I will have to go. That means I do lose the tagging information (timestamp and tagger), but I can live with that...

Thanks for the input.
-- 
\\// Peter - http://www.softwolves.pp.se/

← back to recent threads