git:convert_cvs_to_git
Convert CVS to Git
Install cvs2svn with git support:
cd /usr/ports/devel/cvs2svn make install make clean
mkdir migrate-old-repos-to-git cd !$ cp /usr/local/share/examples/cvs2svn/cvs2git-example.options cvs2git.options
Edit the file like this:
diff -ud cvs2git.options.old cvs2git.options idefix@server --- cvs2git.options.old 2014-06-11 13:00:54.939373946 +0200 +++ cvs2git.options 2014-06-11 13:04:39.698356333 +0200 @@ -188,7 +188,7 @@ ctx.trunk_only = False ctx.cvs_author_decoder = CVSTextDecoder( [ #'utf8', - #'latin1', + 'latin1', 'ascii', ], #fallback_encoding='ascii' @@ -196,7 +196,7 @@ ctx.cvs_author_decoder = CVSTextDecoder( ctx.cvs_log_decoder = CVSTextDecoder( [ #'utf8', - #'latin1', + 'latin1', 'ascii', ], #fallback_encoding='ascii', @@ -207,7 +207,7 @@ ctx.cvs_log_decoder = CVSTextDecoder( ctx.cvs_filename_decoder = CVSTextDecoder( [ #'utf8', - #'latin1', + 'latin1', 'ascii', ], #fallback_encoding='ascii' @@ -513,7 +513,7 @@ ctx.retain_conflicting_attic_files = Fal # (name, email). Please substitute your own project's usernames here # to use with the author_transforms option of GitOutputOption below. author_transforms={ - 'jrandom' : ('J. Random', 'jrandom@example.com'), - 'mhagger' : 'Michael Haggerty <mhagger@alum.mit.edu>', - 'brane' : (u'Branko Čibej', 'brane@xbc.nu'), - 'ringstrom' : 'Tobias Ringström <tobias@ringstrom.mine.nu>', - 'dionisos' : (u'Erik Hülsmann', 'e.huelsmann@gmx.net'), + 'idefix' : ('Matthias Fechner', 'spam@fechner.net'), @@ -561,7 +561,7 @@ run_options.set_project( # The filesystem path to the part of the CVS repository (*not* a # CVS working copy) that should be converted. This may be a # subdirectory (i.e., a module) within a larger CVS repository. - r'test-data/main-cvsrepos', + r'/usr/local/cvs/bericht_pra2', # A list of symbol transformations that can be used to rename # symbols in this project.
export repo=bericht_pra2 mkdir cvs2git-tmp cvs2git --options=cvs2git.options mkdir ${repo}.git cd ${repo}.git git init --bare git fast-import --export-marks=../cvs2git-tmp/git-marks.dat < ../cvs2git-tmp/git-blob.dat git fast-import --import-marks=../cvs2git-tmp/git-marks.dat < ../cvs2git-tmp/git-dump.dat git gc git remote add origin git@localhost:${repo} git push origin cd .. rm -Rf ${repo}.git cvs2git-tmp rm -Rf /usr/local/cvs/${repo}
git/convert_cvs_to_git.txt · Zuletzt geändert: 2014/06/11 18:04 von idefix