[p4] Migrating SCCS to Perforce (again, still)
Rick Macdonald
rickmacd at shaw.ca
Wed Mar 12 10:08:08 PDT 2008
I started looking at this last year but it got delayed until now.
Currently, I'm looking at:
- SCCS to RCS using Eric Raymond's sccs2rcs python version 1.5. It
seemed the newest I could find?
- RCS to P4 using Richard Geiger's cvs2p4 from July 24, 2006. It seemed
the newest I could find?
- There seems to be 2 options to merge the P4 depot above with our
existing server: RevML and perfmerge++ from Perforce. I haven't looked
at these much yet. Advice?
- our existing server is still at version 2005.2. I'm thinking I'd do
this migration and depot merge at 2005.2 and then update the server to
2007.x afterwards. Some of the scripts are old and there could be
issues, especially with cvs2p4. Is this a good plan?
Release branches or labels: I've come up with the following. Have I
missed some better method?
Ultimately, we need to label and/or branch several releases from the
SCCS files. Creating labels and then branching seems the way to go at
this point. cvs2p4 maintains the original SCCS revisions, as seen in the
journal and checkpoint:
@pv@ 0 @db.archive@ @//depot/IMPORT/RCS/fanmo.F@ @4101.1@
@//Test/1/fanmo.F@ 14 32
@pv@ 0 @db.archive@ @//depot/IMPORT/RCS/fanmo.F@ @4100.1@
@//Test/1/fanmo.F@ 13 32
@pv@ 0 @db.archive@ @//depot/IMPORT/RCS/fanmo.F@ @3111.1@
@//Test/1/fanmo.F@ 12 32
@pv@ 0 @db.archive@ @//depot/IMPORT/RCS/fanmo.F@ @3100.1@
@//Test/1/fanmo.F@ 11 32
The numbers "4101.1" are the SCCS revisions, and "14", "13" etc are the
corresponding P4 revisions. The SCCS revisions are not visible anywhere
that I can find in the P4 depot created, but cvs2p4 has a "revmap" that
produces this list:
/home/rickm/GCTSCCS/RCS/fanmo.F/3100.1 //Test/1/fanmo.F#11
/home/rickm/GCTSCCS/RCS/fanmo.F/3111.1 //Test/1/fanmo.F#12
/home/rickm/GCTSCCS/RCS/fanmo.F/4100.1 //Test/1/fanmo.F#13
/home/rickm/GCTSCCS/RCS/fanmo.F/4101.1 //Test/1/fanmo.F#14
I could write a trivial script to extract the depot file/revision names
at historical points that I need (eg 4100 would be file
/Test/1/fanmo.F#13) into filelist files and feed these into "p4 -x
filelist tag -l labelname".
I would do this on the cvs2p4-created depot before merging with our
existing depot. I assume the labels will still be valid after the depot
merge? I think I could create branches from these labels before or after
the merge, so I'd probably do it after.
Comments? Any red flags, things I haven't mentioned or asked that I
should have?
Regards,
Rick
More information about the perforce-user
mailing list