CVS to GIT conversion

Docs

  1. Install Python <3 version

    https://www.python.org/downloads/release/python-2715/
  2. Install svn with command line tools

  3. Install make

    https://sourceforge.net/projects/gnuwin32/files/
    make/3.81/make-3.81.exe/download?use_mirror=excellmedia&download=
  4. Setup cvs2svn //or use attached rar

    //Download link (cvs2svn-2.5.0)
    http://cvs2svn.tigris.org/servlets/ProjectDocumentList
    cd downloadPath\cvs2svn-2.5.0
    svn co --username=guest --password=""
    http://cvs2svn.tigris.org/svn/cvs2svn/trunk cvs2svn-trunk
    cd cvs2svn-trunk
    make man # If you want to create manpages for the main programs
    make check # ...optional
  5. Conversion (say ServerRepository is cvs repo to be converted)

    python cvs2git
    --blobfile=cvs2git-tmp/git-blob.dat
    --dumpfile=cvs2git-tmp/git-dump.dat
    --username=cvs2git --use-cvs ../../ServerRepository
    --fallback-encoding=utf8
  6. Create blank git repo

    git init --bare /path/to/myproject.git
    cd /path/to/myproject.git
  7. Load the dump files into the new git repository

    git fast-import --export-marks=
    ../cvs2svn-2.5.0/cvs2git-tmp/git-marks.dat <../cvs2svn-2.5.0/cvs2git-tmp/git-blob.dat
    git fast-import --import-marks=
    ../cvs2svn-2.5.0/cvs2git-tmp/git-marks.dat <../cvs2svn-2.5.0/cvs2git-tmp/git-dump.dat
  8. Delete the TAG.FIXUP branch

    git branch -D TAG.FIXUP
  9. To get rid of unnecessary tag fixup branches (run from git repository)

    python pathto\cvs2svn-2.5.0\contrib\git-move-refs.py
  10. Re-compact the repository and discard any garbage:

    git gc --prune=now

    Now you have a bare server git repo, just clone in client.