Cvs2svn windows howto
Can you please help. Are you absolutely certain you are pointing cvs2svn at a CVS repository? Pass 1 complete. I am getting an error when I try the following command. Your email address will not be published. Save my name, email, and website in this browser for the next time I comment. If you see this field, do not fill it! Then open command prompt and make sure it is working by typing 'python' Step 3. When install has finished open command prompt and make sure svn is working by typing 'svn' Step 5.
Step 6. This is useful when you want to create an SVN repository that has multiple projects inside it. Subversion SVN. Fix Xmap SectionEX extension not listing article links correctly. February 14, - am. February 19, - am. I'm glad you found my guide useful, its always good to hear positive feedback.
April 4, - am. May 23, - am. Great step-by-step giude! I have looked exactly something like this. Thanks very much. Please read the documentation carefully before using cvs2svn.
For general use, the most recent released version of cvs2svn is usually the best choice. However, if you want to use the newest cvs2svn features or if you're debugging or patching cvs2svn, you might want to use the trunk version which is usually quite stable.
ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds. Privacy Policy Contact Us Support. All rights reserved. However, often vendor branches exist for reasons unrelated to tracking outside sources. Indeed, some CVS documentation recommends using the cvs import command to import your own code into your CVS repository which is arguably a misuse of the cvs import command.
Vendor branches created by this practice are useless and would only serve to clutter up your Subversion repository. Therefore, cvs2svn allows vendor branches to be excluded, in which case the vendor branch revisions are grafted onto the history of trunk. This is allowed even if other branches or tags appear to sprout from the vendor branch, in which case the dependent tags are grafted to trunk as well.
Such branches can be recognized in the --write-symbol-info by looking for a symbol that is a "pure import" in the same number of files that it appears as a branch. It is typically advantageous to exclude such branches. In CVS, the same symbol can appear as a tag in some files e.
Subversion takes a more global view of your repository, and therefore works better when each symbol is used in a self-consistent way--either always as a branch or always as a tag. If your repository contains inconsistently-used symbols, then CollateSymbolsPass , by default, uses heuristics to decide which symbols to convert as branches and which as tags.
Often this behavior will be adequate, and you don't have to do anything special. However, if you want to take finer control over how symbols are converted, you can do so. With the strict setting, cvs2svn prints error messages and aborts the conversion if there are any ambiguous symbols. The error messages look like this:. You have to tell cvs2svn how to fix the inconsistencies then restart the conversion at CollateSymbolsPass.
There are three ways to deal with an inconsistent symbol: treat it as a tag, treat it as a branch, or exclude it from the conversion altogether.
SYMBOL3 , on the other hand, was sometimes used as a branch, and at least one revision was committed on the branch. But it cannot be converted as a tag because tags are not allowed to have revisions on them. If you are not so picky about which symbols are converted as tags and which as branches, you can ask cvs2svn to decide by itself.
You can use the --force-branch and --force-tag options to specify the treatment of particular symbols, in combination with --symbol-default to specify the default to be used for other ambiguous symbols. Finally, you can have cvs2svn write a text file showing how each symbol was converted by using the --write-symbol-info option. If you disagree with any of cvs2svn's choices, you can make a copy of this file, edit it, then pass it to cvs2svn by using the --symbol-hints option.
In this manner you can influence how each symbol is converted and also the parent line of development of each symbol the line of development from which the symbol sprouts.
PAT is a Python regular expression pattern that is matched against the entire symbol name. If it matches, the symbol is replaced with SUB, which is a replacement pattern using Python's reference syntax. You may specify any number of these options; they will be applied in the order given on the command line.
A command like. Read symbol conversion hints from PATH. The format of PATH is the same as the format output by --write-symbol-info , namely a text file with four whitespace-separated columns:. If conversion is '. If svn-path is omitted or '. If parent-lod-name is omitted or '. The file may contain blank lines or comment lines lines whose first non-whitespace character is ' '.
The simplest way to use this option is to run the conversion through CollateSymbolsPass with --write-symbol-info option, copy the symbol info and edit it to create a hints file, then re-start the conversion at CollateSymbolsPass with this option enabled. Specify a file in the format of Subversion's config file, whose [auto-props] section can be used to set arbitrary properties on files in the Subversion repository based on their filenames.
The [auto-props] section header must be present; other sections of the config file, including the enable-auto-props setting, are ignored. Filenames are matched to the filename patterns case-insensitively, consistent with Subversion's behavior. The auto-props file might have content like this:. Please note that cvs2svn allows properties to be explicitly unset : if cvs2svn sees a setting like! To create a new Subversion repository by converting an existing CVS repository, run the script like this:.
To create a new Subversion repository containing only trunk commits, and omitting all branches and tags from the CVS repository, do. To create a Subversion dumpfile suitable for 'svnadmin load' from a CVS repository, run it like this:. As it works, cvs2svn will create many temporary files in a temporary directory called "cvs2svn-tmp" or the directory specified with --tmpdir. This is normal.
If the entire conversion is successful, however, those tempfiles will be automatically removed. If the conversion is not successful, or if you specify the '--skip-cleanup' option, cvs2svn will leave the temporary files behind for possible debugging.
Documentation: The list of cvs2svn features explains briefly why converting a repository from CVS is nontrivial and gives a comprehensive list of cvs2svn's many features. The document you are currently reading contains a lot of general information about converting from CVS, and specifically how to use cvs2svn to convert your repository to Subversion.
The FAQ provides frequently asked questions and answers, including important topics such as how to convert multiple project within a single repository, how to fix problems with end-of-line translation , how to get more help and how to report bugs including a useful test case. Requirements cvs2svn requires the following: Direct filesystem access to a copy of the CVS repository that you want to convert.
See the FAQ for more information and a possible workaround. Python 2, version 2. A compatible database library, usually gdbm, and the corresponding Python bindings. Neither dumbdbm nor standard dbm is sufficient. See the --use-rcs flag for more details. See the --use-cvs flag for more details.
Installation As root, run 'make install'. Or, if you do not wish to install cvs2svn on your system, you can simply run it out of this directory. If you want to create Unix-style manpages for the main programs, run 'make man'. Deciding how much to convert If you're looking to switch an existing CVS repository to Subversion, you have a number of choices for migrating your existing CVS data to a Subversion repository, depending on your needs.
Top-skim Doesn't require cvs2svn! How do I fix up end-of-line translation problems? I want a single project but tag-rewriting rules that vary by subdirectory. Can this be done? How do I get cvs2svn to run on OS X What can I do? Using cvs2svn 1. Getting help: How do I get help? What information should I include when requesting help?
How do I subscribe to a mailing list? How do I report a bug? How can I produce a useful test case? General: Does cvs2svn support incremental repository conversion? This option is useful in combination with --auto-props or --mime-types.
But if this option is specified, then cvs2svn uses the specified style as the default. This is an example of how the cvs2svn conversion can be customized using Python. If you want to experiment with converting a CVSNT repository, then please consider the following suggestions: Use cvs2svn's --use-cvs option. Carefully check the result of the conversion before you rely on it, even if the conversion completed without any errors or warnings.
Attempting to run cvs2svn on a standard OS X Here is the procedure for a successful installation of cvs2svn and all supporting libs: Download the gdbm We need to install the gdbm libraries so python's gdbm module can use them. We need to enable python gdbm support which is not enabled in the default OS X However, we just installed the gdbm libs in step 1, so we can now compile python with gdbm support.
If you do, just specify --disable-universalsdk. Download the cvs2svn Many people can't get cvs2svn to work except in the installation directory. Restart the conversion with the --retain-conflicting-attic-files option. This approach avoids losing any history, but by moving the Attic version of the file to a different subdirectory it might cause historical revisions to be broken. Remove the Attic version of the file and restart the conversion.
Sometimes it represents an old version of the file that was deleted long ago, and it won't be missed. But this completely discards one of the file's histories, probably causing file. For what it's worth, this is probably how CVS would behave in this situation. You did make a backup, right?
This might be appropriate if the non- Attic version has less important content than the Attic version. This avoids losing history, but it changes the name of the non- Attic version of the file to file-not-from-Attic. Here are some options: Omit this file from the conversion by making a copy of your repository, deleting this file from the copy, then converting from the copy.
Restore an older copy of this file from backups, if you have backups from before it was corrupted. Hand-fix the file as best you can by opening it in a binary editor and trying to put it back in RCS file format documented in the rcsfile 5 manpage. Often it is older revisions that are affected by corruption; you might need to delete some old revisions to salvage newer ones.
If you would like to discard the resource fork and only record the data fork in Subversion, then start your conversion using the options file method and set the following option to True in your options file: ctx. What are you using cvs2svn version 1. Symptoms of this problem can include: cvs2svn refusing to let you exclude the vendor branch, because some other branch depends on it if you did more than one import onto the vendor branch, then your SVN history "missing" one of the changes on trunk though the change will be on the vendor branch.
The typical usage, assuming you used "cvs import -b 1. There are several sources of help for cvs2svn: The user manual not only describes how to run cvs2svn, but also discusses some limitations, pitfalls, and conversion strategies.
Please note that the online manual describes the latest "bleeding edge" trunk version of the software, which may be different than the version that you are using. The frequently asked questions FAQ list is the document that you are now reading. Please make sure you've scanned through the list of topics to see if your question is already answered. The mailing list archives. Maybe your question has already been discussed on either the user cvs2svn. The users cvs2svn.
Please subscribe to the list so that you can follow ensuing discussions. If you think you have found a bug, please refer to "How do I report a bug? Exactly what version of cvs2svn are you using? If you are not using an official release, please tell us what branch and revision number from the svn archive you are using. If you have modified cvs2svn, please tell us exactly what you have changed.
0コメント