Skip to content

Commit

Permalink
Merge head 'cvs2git' of http://netz.smurf.noris.de/git/git
Browse files Browse the repository at this point in the history
  • Loading branch information
Linus Torvalds committed Jul 5, 2005
2 parents f03f2ba + f4b3a4c commit bbca20a
Show file tree
Hide file tree
Showing 5 changed files with 831 additions and 367 deletions.
34 changes: 27 additions & 7 deletions Documentation/cvs-migration.txt
Original file line number Diff line number Diff line change
Expand Up @@ -63,18 +63,38 @@ Once you've gotten (and installed) cvsps, you may or may not want to get
any more familiar with it, but make sure it is in your path. After that,
the magic command line is

git cvsimport <cvsroot> <module>
git cvsimport -v -d <cvsroot> <module> <destination>

which will do exactly what you'd think it does: it will create a git
archive of the named CVS module. The new archive will be created in a
subdirectory named <module>.
archive of the named CVS module. The new archive will be created in the
subdirectory named <destination>; it'll be created if it doesn't exist.
Default is the local directory.

It can take some time to actually do the conversion for a large archive
since it involves checking out from CVS every revision of every file,
and the conversion script can be reasonably chatty, but on some not very
scientific tests it averaged about eight revisions per second, so a
medium-sized project should not take more than a couple of minutes. For
larger projects or remote repositories, the process may take longer.
and the conversion script is reasonably chatty unless you omit the '-v'
option, but on some not very scientific tests it averaged about twenty
revisions per second, so a medium-sized project should not take more
than a couple of minutes. For larger projects or remote repositories,
the process may take longer.

After the (initial) import is done, the CVS archive's current head
revision will be checked out -- thus, you can start adding your own
changes right away.

The import is incremental, i.e. if you call it again next month it'll
fetch any CVS updates that have been happening in the meantime. The
cut-off is date-based, so don't change the branches that were imported
from CVS.

You can merge those updates (or, in fact, a different CVS branch) into
your main branch:

cg-merge <branch>

The HEAD revision from CVS is named "origin", not "HEAD", because git
already uses "HEAD". (If you don't like 'origin', use cvsimport's
'-o' option to change it.)


Emulating CVS behaviour
Expand Down
75 changes: 75 additions & 0 deletions Documentation/git-cvsimport-script.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
git-cvsimport-script(1)
=======================
v0.1, July 2005

NAME
----
git-cvsimport-script - Import a CVS repository into git


SYNOPSIS
--------
'git-cvsimport-script' [ -o <branch-for-HEAD> ] [ -h ] [ -v ]
[ -d <CVSROOT> ] [ -p <options-for-cvsps> ]
[ -C <GIT_repository> ] [ <CVS_module> ]


DESCRIPTION
-----------
Imports a CVS repository into git. It will either create a new
repository, or incrementally import into an existing one.

Splitting the CVS log into patch sets is done by 'cvsps'.
At least version 2.1 is required.

OPTIONS
-------
-d <CVSROOT>::
The root of the CVS archive. May be local (a simple path) or remote;
currently, only the :local:, :ext: and :pserver: access methods
are supported.

-o <branch-for-HEAD>::
The 'HEAD' branch from CVS is imported to the 'origin' branch within
the git repository, as 'HEAD' already has a special meaning for git.
Use this option if you want to import into a different branch.

Use '-o master' for continuing an import that was initially done by
the old cvs2git tool.

-p <options-for-cvsps>::
Additional options for cvsps.
The options '-x' and '-A' are implicit and should not be used here.

If you need to pass multiple options, separate them with a comma.

-v::
Verbosity: let 'cvsimport' report what it is doing.

<CVS_module>::
The CVS module you want to import. Relative to <CVSROOT>.

-h::
Print a short usage message and exit.

OUTPUT
------
If '-v' is specified, the script reports what it is doing.

Otherwise, success is indicated the Unix way, i.e. by simply exiting with
a zero exit status.


Author
------
Written by Matthias Urlichs <smurf@smurf.noris.de>, with help from
various participants of the git-list <git@vger.kernel.org>.

Documentation
--------------
Documentation by Matthias Urlichs <smurf@smurf.noris.de>.

GIT
---
Part of the link:git.html[git] suite

3 changes: 1 addition & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ PROG= git-update-cache git-diff-files git-init-db git-write-tree \
git-unpack-file git-export git-diff-cache git-convert-cache \
git-http-pull git-ssh-push git-ssh-pull git-rev-list git-mktag \
git-diff-helper git-tar-tree git-local-pull git-write-blob \
git-get-tar-commit-id git-apply git-stripspace git-cvs2git \
git-get-tar-commit-id git-apply git-stripspace \
git-diff-stages git-rev-parse git-patch-id git-pack-objects \
git-unpack-objects git-verify-pack git-receive-pack git-send-pack \
git-prune-packed git-fetch-pack git-upload-pack
Expand Down Expand Up @@ -129,7 +129,6 @@ git-diff-helper: diff-helper.c
git-tar-tree: tar-tree.c
git-write-blob: write-blob.c
git-stripspace: stripspace.c
git-cvs2git: cvs2git.c
git-diff-stages: diff-stages.c
git-rev-parse: rev-parse.c
git-patch-id: patch-id.c
Expand Down
Loading

0 comments on commit bbca20a

Please sign in to comment.