On Thu, Dec 07, 2006 at 03:28:33PM +0100, Johannes Schindelin wrote: > This is a laudable goal, and the order makes sense (put first that what > most people are interested in). > > A few comments: Thanks for the comments! Patch, incremental against the previous one, appended. > - just skimming the patch, I found "commiting" (needs another "t"), and > "-bare" (needs another "-"). Got it, thanks. > - It might make more sense to "git init-db --shared" and fetch the initial > revision into it, rather than clone it and then fix. I do like the idea of anything that gets rid of the ugly find|xargs chmod. Result included below (untested). Is that what you were thinking of? > You might also want > to mention that the "--shared" of -clone is different in meaning from > that of -init-db (make just a footnote of it, to avoid intimidating > readers). I'm ignoring this for now. We can add it later if someone says they've run into it. (But honestly it's partly just laziness on my part--no objection if you want to make the patch.) It's too bad about that option-name conflict. It'd be nice just to be able to do the whole thing with one clone commandline. And it'd also make sense to allow clone and init-db to share commandline options where it made sense. > - By far the easiest method to import from cvs is to go to a checked out > _CVS_ working directory, and just say "git cvsimport". Neat, I didn't know about that. Done. I left the "-C" in there on the assumption they often won't want to drop the result into the CVS working directory. Also did some miscellaneous cleanup. --b. commit 48ec79a74d0daa134b677ed5458beb873aa06e9a Author: J. Bruce Fields <bfields@xxxxxxxxxxxxxx> Date: Thu Dec 7 12:38:09 2006 -0500 Documentation: simpler shared repo creation, miscellaneous cleanup Create the shared repo with init-db --shared, fetch, and manual extraction of .git directory, instead of using clone --bare. Suggest running git-cvsimport from cvs working directory, more convenient thatn providing all the CVS information on the commandline. Fix a couple mispellings, add a couple manpage links. Thanks to Johannes Schindelin. Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxxxxxx> diff --git a/Documentation/cvs-migration.txt b/Documentation/cvs-migration.txt index 773fc99..4fab0d7 100644 --- a/Documentation/cvs-migration.txt +++ b/Documentation/cvs-migration.txt @@ -43,8 +43,8 @@ Pull: refs/heads/master:refs/remotes/origin/master ------------ ================================ -You can update the shared repository with your changes by first commiting -your changes, and then using: +You can update the shared repository with your changes by first committing +your changes, and then using the gitlink:git-push[1] command: ------------------------------------------------ $ git push origin master @@ -76,11 +76,23 @@ possibly created from scratch or from a tarball (see the link:tutorial.html[tutorial]), or imported from an already existing CVS repository (see the next section). -If your project's working directory is /home/alice/myproject, you can -create a shared repository at /pub/repo.git with: +Assume your existing repo is at /home/alice/myproject. Create a temporary +empty shared repository and fetch your project into it: ------------------------------------------------ -$ git clone -bare /home/alice/myproject /pub/repo.git +$ mkdir /pub/temporary +$ cd /pub/temporary +$ git init-db --shared +$ git fetch /home/alice/myproject master:master +------------------------------------------------ + +Then create a "bare" repository at /pub/repo.git by just moving the contents of +the .git directory there. The temporary repository can then be discarded. + +------------------------------------------------ +$ mv .git /pub/repo.git +$ cd .. +$ rm -rf temporary ------------------------------------------------ Next, give every team member read/write access to this repository. One @@ -107,15 +119,15 @@ Importing a CVS archive First, install version 2.1 or higher of cvsps from link:http://www.cobite.com/cvsps/[http://www.cobite.com/cvsps/] and make -sure it is in your path. The magic command line is then +sure it is in your path. Then cd to a checked out CVS working directory +of the project you are interested in and run gitlink:git-cvsimport[1]: ------------------------------------------- -$ git cvsimport -v -d <cvsroot> -C <destination> <module> +$ git cvsimport -C <destination> ------------------------------------------- This puts a git archive of the named CVS module in the directory -<destination>, which will be created if necessary. The -v option makes -the conversion script very chatty. +<destination>, which will be created if necessary. The import checks out from CVS every revision of every file. Reportedly cvsimport can average some twenty revisions per second, so for a - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html