1 Version ?.?.? (not yet released)
2 --------------------------------
5 * Store CVS file descriptions in a Subversion property "cvs:description".
6 * SVN: Optionally include empty directories from the CVS repository.
7 * Much faster cvs2git conversions possible via --use-external-blob-generator.
10 * Issue #31: cvs2svn does not convert empty directories.
11 * Issue #127: Dead "file X added on branch Y" revisions not always dropped.
13 Improvements and output changes:
14 * More aggressively omit unnecessary dead revisions.
15 * Consider it a failure if "cvs" or "co" writes something to stderr.
18 * Sort large files using Python to avoid dependency on GNU sort.
21 Version 2.3.0 (22 August 2009)
22 ------------------------------
25 * Add a "cvs2git" script for starting conversions to git (or Mercurial).
26 * Add a "cvs2bzr" script for starting conversions to Bazaar.
27 * Generate manual pages automatically via new --man option.
28 * Allow --mime-types and --auto-props options to be specified more than once.
29 * Support author transforms when converting to Subversion.
30 * Allow unlabeled branches to be renamed using SymbolTransforms.
33 * cvs2git with non-inline blobs: a revision after a delete could be empty.
34 * Fix timezone handling under Windows (which does not respect TZ variable).
35 * Do path comparisions platform-independently in symbol transform classes.
36 * Fix https://bugs.launchpad.net/pld-linux/+bug/385920
38 Improvements and output changes:
39 * Output error message if a revision's deltatext is missing.
40 * Improve contrib/verify-cvs2svn.py (used for testing conversion accuracy).
43 * Add an IgnoreSymbolTransform class, for ignoring symbols matching a regexp.
44 * Remove some DeprecationWarnings when running under newer Python versions.
47 Version 2.2.0 (23 November 2008)
48 --------------------------------
51 * cvs2git: Omit fixup branch if a tag can be copied from an existing revision.
52 * cvs2git: Add option to set the maximum number of merge sources per commit.
53 * Allow arbitrary SVN directories to be created when a project is created.
54 * Allow vendor branches to be excluded, grafting child symbols to trunk.
55 * By default, omit trivial import branches from conversion.
56 - Add --keep-trivial-imports option to get old behavior.
57 * By default, don't include .cvsignore files in output (except as svn:ignore).
58 - Add option --keep-cvsignore to get the old behavior.
59 * Allow the user to specify the form of cvs2svn-generated log messages.
60 * Allow file contents to be written inline in git-fast-import streams.
61 * --create-option: allow arbitrary options to be passed to "svnadmin create".
62 * Improve handling of auto-props file:
63 - Discard extraneous spaces where they don't make sense.
64 - Warn if parts of the file might be commented out unintentionally.
65 - Warn if the user appears to be trying to quote a property value.
68 * Fix issue #81: Remove svn:ignore property when .cvsignore is deleted.
69 * Fix svn dumpfile conformance:
70 - Don't include a leading '/' for Node-path.
71 - Include the Node-kind field when copying nodes.
72 * Make symlink test create symlinks explicitly, to avoid packaging problems.
73 * Accept symbol references to revision numbers that end with ".0".
75 Improvements and output changes:
76 * When -v, log reasons for symbol conversion choices (tag/branch/exclude).
77 * Log preferred parent determinations at verbose (rather than debug) level.
78 * Log symbol transformations at verbose (rather than warn) level.
79 * Log statistics about all symbol transformations at normal level.
80 * cvs2git: Generate lightweight rather than annotated tags.
81 * contrib/destroy_repository.py:
82 - Allow symbols, files, and directories to be renamed.
83 - Allow CVSROOT directory contents to be erased.
84 - Specify what aspects of a repo to destroy via command-line options.
87 * cvs2svn now requires Python version 2.4 or later.
90 Version 2.1.1 (15 April 2008)
91 -----------------------------
94 * Make files that are to be sorted more text-like to fix problem on Windows.
95 * Fix comment in header of --write-symbol-info output file.
98 * Adjust test suite for upstream changes in the svntest code.
101 Version 2.1.0 (19 February 2008)
102 --------------------------------
105 * Allow conversion of a CVS repository to git (experimental).
106 - Support mapping from cvs author names to git "Author <email>" form.
107 * Enhance symbol transform capabilities:
108 - Add SymbolMapper, for transforming specific symbols in specific files.
109 - Allow SymbolTransforms to cause a symbol to be discarded.
110 * Enhance symbol strategy capabilities:
111 - Write each CVS branch/tag to be written to an arbitrary SVN path.
112 - Choose which trunk/branch should serve as the parent of each branch/tag.
113 - --symbol-hints: manually specify how symbols should be converted.
114 - Make symbol strategy rules project-specific.
115 * --write-symbol-info: output info about CVS symbols.
116 * Add option ctx.decode_apple_single for handling AppleSingle-encoded files.
117 * Add a new, restartable pass that converts author and log_msg to Unicode.
118 * Allow properties to be left unset via auto-props using a leading '!'.
121 * Fix issue #80: Empty CVS,v file not accepted.
122 * Fix issue #108: Create project TTB directories "just-in-time".
123 * Fix issue #112: Random test failures with Python 2.5.
124 * Fix issue #115: crash - Bad file descriptor.
125 * Fix the translation of line-end characters for eol-styles CR and CRLF.
127 Improvements and output changes:
128 * Create trunk/tags/branches directories for project when project is created.
129 * Improved conversion speed significantly, especially for large repositories.
130 * Ignore (with a warning) symbols defined to malformed revision numbers.
131 * Tolerate multiple definitions of a symbol to the same revision number.
132 * Handle RCS files that superfluously set the default branch to trunk.
133 * Allow '/' characters in CVS symbol names (creating multilevel SVN paths).
134 * Allow symbols to be transformed to contain '/' (allowing multilevel paths).
135 * Convert '\' characters to '/' (rather than '--') in symbol names.
136 * Make encoding problems fatal; to resolve, restart at CleanMetadataPass.
139 * Change the default symbol handling option to --symbol-default=heuristic.
142 Version 2.0.1 (04 October 2007)
143 -------------------------------
146 * Fix problem with keyword expansion when using --use-internal-co.
149 Version 2.0.0 (15 August 2007)
150 ------------------------------
153 * Add --use-internal-co to speed conversions, and make it the default.
154 * Add --retain-conflicting-attic-files option.
155 * Add --no-cross-branch-commits option.
156 * Add --default-eol option and deprecate --no-default-eol.
157 * RevisionRecorder hook allows file text/deltas to be recorded in pass 1.
158 * RevisionReader hook allow file text to be retrieved from RevisionRecorder.
159 * Slightly changed the order that properties are set, for more flexibility.
160 * Don't set svn:keywords on files for which svn:eol-style is not set.
161 * Implement issue #53: Allow --trunk='' for --trunk-only conversions.
164 * Fix issue #97: Follow symlinks within CVS repository.
165 * Fix issue #99: cvs2svn tries to create a file twice.
166 * Fix issue #100: cvs2svn doesn't retrieve the right version.
167 * Fix issue #105: Conflict between directory and Attic file causes crash.
168 * Fix issue #106: SVNRepositoryMirrorParentMissingError.
169 * Fix missing command-line handling of --fallback-encoding option.
170 * Fix issue #85: Disable symbol sanity checks when in --trunk-only mode.
172 Improvements and output changes:
173 * Analyze CVS revision dependency graph, giving a more robust conversion.
174 * Improve choice of symbol parents when CVS history is ambiguous.
175 * In the case of clock skew to the past, resync forwards, not backwards.
176 * Treat timestamps that lie in the future as bogus, and adjust backwards.
177 * Gracefully handle tags that refer to nonexistent revisions.
178 * Check and fail if revision header appears multiple times.
179 * Gracefully handle multiple deltatext blocks for same revision.
180 * Be more careful about only processing reasonable *,v files.
181 * Improve checks for illegal filenames.
182 * Check if a directory name conflicts with a filename.
183 * When file is imported, omit the empty revision 1.1.
184 * If a non-trunk default branch is excluded, graft its contents to trunk.
185 * Omit the initial 'dead' revision when a file is added on a branch.
186 * Require --symbol-transform pattern to match entire symbol name.
187 * Treat files as binary by default instead of as text, because it is safer.
188 * Treat auto-props case-insensitively; deprecate --auto-props-ignore-case.
191 * Add a simple (nonportable) script to log cvs2svn memory usage.
192 * Allow contrib/shrink_test_case.py script to try deleting tags and branches.
193 * Add --skip-initial-test option to contrib/shrink_test_case.py script.
196 Version 1.5.1 (28 January 2007)
197 -------------------------------
200 * Add missing import in cvs2svn_lib/process.py.
201 * Fix omission of parsing of the --fallback-encoding option.
204 Version 1.5.0 (03 October 2006)
205 -------------------------------
208 * Support multiproject conversions (each gets its own trunk, tags, branches).
209 * New --options option to allow run-time options to be defined via a file.
210 * --co, --cvs, and --sort options to specify the paths to executables.
211 * Add new --fallback-encoding option.
214 * Fix issue #86: Support multiple project roots per repository.
215 * Fix issue #104: Allow path to "sort" executable to be specified.
216 * Fix issue #8: Allow multiple --encoding options.
217 * Fix issue #109: Improve handling of fallback encodings.
219 Improvements and output changes:
220 * Further reduce conversion time and temporary space requirements.
223 * Deprecate the --dump-only option (it is now implied by --dumpfile).
224 * Add scripts to help isolate conversion problems and shrink test cases.
225 * Add a script to search for illegal filenames in a CVS repository.
228 Version 1.4.0 (27 August 2006)
229 ------------------------------
232 * Support multicomponent --trunk, --tags, and --branches paths (issue #7).
233 * New --auto-props option allows file properties to be set via file.
234 * --force-branch and --force-tag options now accept regular expressions.
235 * Add --symbol-default option.
236 * Support multiple, ordered --encoding options.
239 * Fix issue #93: Tags with forbidden characters converted to branches.
240 * Fix issue #102: Branch file, deleted in CVS, is present in SVN.
242 Improvements and output changes:
243 * Print informative warning message if a required program is missing.
244 * Output an error if any CVS filenames contain control characters.
245 * Clean up temporary files even for pass-by-pass conversions.
246 * Improve handling of commit dependencies and multibranch commits.
247 * Implemented issue #50 (performance change).
248 * Reduced the amount of temporary disk space needed during the conversion.
251 * cvs2svn now requires Python version 2.2 or later.
252 * cvs2svn has been broken up into many smaller python modules for clarity.
255 Version 1.3.1 (24 May 2006)
256 ---------------------------
259 * Fix issue #67: malfunction caused by RCS branches rooted at revision 1.0.
262 Version 1.3.0 (18 August 2005)
263 ------------------------------
266 * Fix cvs2svn's dumpfile output to work after Subversion's r12645.
267 * Fix issue #71: Avoid resyncing two consecutive CVS revs to same time.
268 * Fix issue #88: Don't allow resyncing to throw off CVS revision order.
269 * Fix issue #89: Handle initially dead branch revisions acceptably.
270 * Fix some branch-filling bugs (r1429, r1444).
272 Improvements and output changes:
273 * Better --encoding support when iconv_codec module is available.
274 * Speedups to pass8 (r1421)
275 * Use standard "rNNN" syntax when printing Subversion revisions.
278 Version 1.2.1 (14 February 2005)
279 --------------------------------
282 * Fix cvs2svn's dumpfile output to work after Subversion's r12645.
285 Version 1.2.0 (11 January 2005)
286 -------------------------------
289 * --fs-type=TYPE: make it possible to specify the filesystem type.
292 * Convert files with svn:eol-style to have LF end of lines only.
293 * Fix hang in pass 8 for files that ended with a CR.
294 * Import unexpanded keywords into the repository.
295 * Fix the handling of the $Revision$ keyword.
296 * Fix bug in branch/tag creation edge case.
299 Version 1.1.0 (15 September 2004)
300 ---------------------------------
303 * --symbol-transform: change tag and branch names using regular expressions.
304 * Flush log after writing, for better feedback when using 'tee'.
307 * Issue 74: No longer attempt to change non-existent files.
308 * Allow the Subversion repository created to have spaces in its name.
309 * Avoid erroring when using a svnadmin that uses FSFS by default.
312 Version 1.0.0 (25 August 2004)
313 ------------------------------
315 * The cvs2svn project comes of age.