Cvs2git: Difference between revisions
initial commit |
|||
| Line 40: | Line 40: | ||
{{highlight|lang=text|code= | {{highlight|lang=text|code= | ||
run_options.set_project( | run_options.set_project( | ||
r' | r'CVSRepo', | ||
) | ) | ||
}} | }} | ||
| Line 49: | Line 49: | ||
CVSRevisionReader(cvs_executable=r'cvs'), | CVSRevisionReader(cvs_executable=r'cvs'), | ||
GitRevisionRecorder('blob.dat'), | GitRevisionRecorder('blob.dat'), | ||
) | |||
}} | }} | ||
Revision as of 00:05, 27 June 2017
cvs2git is a utility that converts a CVS repository into a Git repository.
Quick Usage Guide
After installing cvs2git, convert a CVS repository by running:
$ cvs2git --blobfile=blob.dat --dumpfile=dump.dat CVSRepo
## Create a new git repo and import the dat files
$ mkdir gitrepo
$ cd gitrepo
$ git init
$ cat ../blob.dat ../dump.dat
Transform Committer Information
Since the CVS repos use only usernames, the git commits will not have the proper Name/Emails set. Depending on your requirements, you may want to have the commit information match a person's identity.
To do this, copy the example cvs2git config file.
cp /usr/share/doc/cvs2svn-2.3.0/cvs2git-example.options ~
Edit the author_transforms section.
For example, to convert the 'originalname' username:
author_transforms={
'originalname' : ('New Name', 'new.name@steamr.com')
}
Specify the project by editing the run_options.set_project value.
run_options.set_project(
r'CVSRepo',
)
You may also optionally set the blob path by editing the values under ctx.revision_recorder:
ctx.revision_recorder = SimpleFulltextRevisionRecorderAdapter(
CVSRevisionReader(cvs_executable=r'cvs'),
GitRevisionRecorder('blob.dat'),
)
With these settings made, we can do the conversion:
## Convert with the options file we copied above
$ cvs2git --options=cvs2git-example.options
## Create a new git repo and import the dat files
$ mkdir gitrepo
$ cd gitrepo
$ git init
$ cat ../blob.dat ../dump.dat