(unnamed)

text/plain

Filename: (unnamed)
Type: text/plain
Part: 0
Message: Report: removing the inconsistencies in our CVS->git conversion
Overall conversion process
==========================

1. Fetch CVS repository:
   $ rsync -azH --delete anoncvs.postgresql.org::pgsql-cvs cvsroot/
   You MUST install this at /cvsroot, or at least make a symlink
   from there, so that $Header$ keywords will match PG CVS history
   as closely as possible.

2. You need a version of CVS that will honor the $PostgreSQL$ RCS keywords.
   Stock versions of cvs 1.11.x will *not*.  The CVS repository is set up
   for the BSD patch, which honors
	tag=PostgreSQL=CVSHeader
   in /cvsroot/CVSROOT/options.  If you have a recent 1.12.x cvs release,
   you'll need to add this to /cvsroot/CVSROOT/config:
	LocalKeyword=PostgreSQL=CVSHeader
   Test that it is working by checking out a recent release tag and diffing
   against the corresponding release tarball, for example
	cvs -Q -d /cvsroot co -d cvsout -r REL8_4_4 pgsql
	find cvsout -name CVS -type d | xargs rm -rf
	tar xfj postgresql-8.4.4.tar.bz2
	diff -r cvsout postgresql-8.4.4

3. Run the repository.fixups script.

4. Run cvs2git trunk r5270:
	cvs2git --options cvs2git.options

   (cvs2git-example.options is an unmodified copy of the upstream example
   config file at the version cvs2git.options is based on, for comparison.)

5. Convert to a git repository with git fast-import, for example

	mkdir git && cd git && git init .
	cat ../cvs2svn-tmp/git-blob.dat ../cvs2svn-tmp/git-dump.dat | git fast-import
	git reset --hard
	cd ..
	rm -rf cvs2svn-tmp