Use OptionParser.add_option_group(str).
[cvs2svn.git] / CHANGES
blob47b603ee9a005dc785b39dfbfc5dcfaa0b371546
1 Version 2.2.0 (23 November 2008)
2 --------------------------------
4  New features:
5  * cvs2git: Omit fixup branch if a tag can be copied from an existing revision.
6  * cvs2git: Add option to set the maximum number of merge sources per commit.
7  * Allow arbitrary SVN directories to be created when a project is created.
8  * Allow vendor branches to be excluded, grafting child symbols to trunk.
9  * By default, omit trivial import branches from conversion.
10    - Add --keep-trivial-imports option to get old behavior.
11  * By default, don't include .cvsignore files in output (except as svn:ignore).
12    - Add option --keep-cvsignore to get the old behavior.
13  * Allow the user to specify the form of cvs2svn-generated log messages.
14  * Allow file contents to be written inline in git-fast-import streams.
15  * --create-option: allow arbitrary options to be passed to "svnadmin create".
16  * Improve handling of auto-props file:
17    - Discard extraneous spaces where they don't make sense.
18    - Warn if parts of the file might be commented out unintentionally.
19    - Warn if the user appears to be trying to quote a property value.
21  Bugs fixed:
22  * Fix issue #81: Remove svn:ignore property when .cvsignore is deleted.
23  * Fix svn dumpfile conformance:
24    - Don't include a leading '/' for Node-path.
25    - Include the Node-kind field when copying nodes.
26  * Make symlink test create symlinks explicitly, to avoid packaging problems.
27  * Accept symbol references to revision numbers that end with ".0".
29  Improvements and output changes:
30  * When -v, log reasons for symbol conversion choices (tag/branch/exclude).
31  * Log preferred parent determinations at verbose (rather than debug) level.
32  * Log symbol transformations at verbose (rather than warn) level.
33  * Log statistics about all symbol transformations at normal level.
34  * cvs2git: Generate lightweight rather than annotated tags.
35  * contrib/destroy_repository.py:
36    - Allow symbols, files, and directories to be renamed.
37    - Allow CVSROOT directory contents to be erased.
38    - Specify what aspects of a repo to destroy via command-line options.
40  Miscellaneous:
41  * cvs2svn now requires Python version 2.4 or later.
44 Version 2.1.1 (15 April 2008)
45 -----------------------------
47  Bugs fixed:
48  * Make files that are to be sorted more text-like to fix problem on Windows.
49  * Fix comment in header of --write-symbol-info output file.
51  Miscellaneous
52  * Adjust test suite for upstream changes in the svntest code.
55 Version 2.1.0 (19 February 2008)
56 --------------------------------
58  New features:
59  * Allow conversion of a CVS repository to git (experimental).
60    - Support mapping from cvs author names to git "Author <email>" form.
61  * Enhance symbol transform capabilities:
62    - Add SymbolMapper, for transforming specific symbols in specific files.
63    - Allow SymbolTransforms to cause a symbol to be discarded.
64  * Enhance symbol strategy capabilities:
65    - Write each CVS branch/tag to be written to an arbitrary SVN path.
66    - Choose which trunk/branch should serve as the parent of each branch/tag.
67    - --symbol-hints: manually specify how symbols should be converted.
68    - Make symbol strategy rules project-specific.
69  * --write-symbol-info: output info about CVS symbols.
70  * Add option ctx.decode_apple_single for handling AppleSingle-encoded files.
71  * Add a new, restartable pass that converts author and log_msg to unicode.
72  * Allow properties to be left unset via auto-props using a leading '!'.
74  Bugs fixed:
75  * Fix issue #80: Empty CVS,v file not accepted.
76  * Fix issue #108: Create project TTB directories "just-in-time".
77  * Fix issue #112: Random test failures with Python 2.5.
78  * Fix issue #115: crash - Bad file descriptor.
79  * Fix the translation of line-end characters for eol-styles CR and CRLF.
81  Improvements and output changes:
82  * Create trunk/tags/branches directories for project when project is created.
83  * Improved conversion speed significantly, especially for large repositories.
84  * Ignore (with a warning) symbols defined to malformed revision numbers.
85  * Tolerate multiple definitions of a symbol to the same revision number.
86  * Handle RCS files that superfluously set the default branch to trunk.
87  * Allow '/' characters in CVS symbol names (creating multilevel SVN paths).
88  * Allow symbols to be transformed to contain '/' (allowing multilevel paths).
89  * Convert '\' characters to '/' (rather than '--') in symbol names.
90  * Make encoding problems fatal; to resolve, restart at CleanMetadataPass.
92  Miscellaneous:
93  * Change the default symbol handling option to --symbol-default=heuristic.
96 Version 2.0.1 (04 October 2007)
97 -------------------------------
99  Bugs fixed:
100  * Fix problem with keyword expansion when using --use-internal-co.
103 Version 2.0.0 (15 August 2007)
104 ------------------------------
106  New features:
107  * Add --use-internal-co to speed conversions, and make it the default.
108  * Add --retain-conflicting-attic-files option.
109  * Add --no-cross-branch-commits option.
110  * Add --default-eol option and deprecate --no-default-eol.
111  * RevisionRecorder hook allows file text/deltas to be recorded in pass 1.
112  * RevisionReader hook allow file text to be retrieved from RevisionRecorder.
113  * Slightly changed the order that properties are set, for more flexibility.
114  * Don't set svn:keywords on files for which svn:eol-style is not set.
115  * Implement issue #53: Allow --trunk='' for --trunk-only conversions.
117  Bugs fixed:
118  * Fix issue #97: Follow symlinks within CVS repository.
119  * Fix issue #99: cvs2svn tries to create a file twice.
120  * Fix issue #100: cvs2svn doesn't retrieve the right version.
121  * Fix issue #105: Conflict between directory and Attic file causes crash.
122  * Fix issue #106: SVNRepositoryMirrorParentMissingError.
123  * Fix missing command-line handling of --fallback-encoding option.
124  * Fix issue #85: Disable symbol sanity checks when in --trunk-only mode.
126  Improvements and output changes:
127  * Analyze CVS revision dependency graph, giving a more robust conversion.
128  * Improve choice of symbol parents when CVS history is ambiguous.
129  * In the case of clock skew to the past, resync forwards, not backwards.
130  * Treat timestamps that lie in the future as bogus, and adjust backwards.
131  * Gracefully handle tags that refer to nonexistent revisions.
132  * Check and fail if revision header appears multiple times.
133  * Gracefully handle multiple deltatext blocks for same revision.
134  * Be more careful about only processing reasonable *,v files.
135  * Improve checks for illegal filenames.
136  * Check if a directory name conflicts with a filename.
137  * When file is imported, omit the empty revision 1.1.
138  * If a non-trunk default branch is excluded, graft its contents to trunk.
139  * Omit the initial 'dead' revision when a file is added on a branch.
140  * Require --symbol-transform pattern to match entire symbol name.
141  * Treat files as binary by default instead of as text, because it is safer.
142  * Treat auto-props case-insensitively; deprecate --auto-props-ignore-case.
144  Miscellaneous:
145  * Add a simple (nonportable) script to log cvs2svn memory usage.
146  * Allow contrib/shrink_test_case.py script to try deleting tags and branches.
147  * Add --skip-initial-test option to contrib/shrink_test_case.py script.
150 Version 1.5.1 (28 January 2007)
151 -------------------------------
153  Bugs fixed:
154  * Add missing import in cvs2svn_lib/process.py.
155  * Fix omission of parsing of the --fallback-encoding option.
158 Version 1.5.0 (03 October 2006)
159 -------------------------------
161  New features:
162  * Support multiproject conversions (each gets its own trunk, tags, branches).
163  * New --options option to allow run-time options to be defined via a file.
164  * --co, --cvs, and --sort options to specify the paths to executables.
165  * Add new --fallback-encoding option.
167  Bugs fixed:
168  * Fix issue #86: Support multiple project roots per repository.
169  * Fix issue #104: Allow path to "sort" executable to be specified.
170  * Fix issue #8: Allow multiple --encoding options.
171  * Fix issue #109: Improve handling of fallback encodings.
173  Improvements and output changes:
174  * Further reduce conversion time and temporary space requirements.
176  Miscellaneous:
177  * Deprecate the --dump-only option (it is now implied by --dumpfile).
178  * Add scripts to help isolate conversion problems and shrink test cases.
179  * Add a script to search for illegal filenames in a CVS repository.
182 Version 1.4.0 (27 August 2006)
183 ------------------------------
185  New features:
186  * Support multicomponent --trunk, --tags, and --branches paths (issue #7).
187  * New --auto-props option allows file properties to be set via file.
188  * --force-branch and --force-tag options now accept regular expressions.
189  * Add --symbol-default option.
190  * Support multiple, ordered --encoding options.
192  Bugs fixed:
193  * Fix issue #93: Tags with forbidden characters converted to branches.
194  * Fix issue #102: Branch file, deleted in CVS, is present in SVN.
196  Improvements and output changes:
197  * Print informative warning message if a required program is missing.
198  * Output an error if any CVS filenames contain control characters.
199  * Clean up temporary files even for pass-by-pass conversions.
200  * Improve handling of commit dependencies and multibranch commits.
201  * Implemented issue #50 (performance change).
202  * Reduced the amount of temporary disk space needed during the conversion.
204  Miscellaneous:
205  * cvs2svn now requires Python version 2.2 or later.
206  * cvs2svn has been broken up into many smaller python modules for clarity.
209 Version 1.3.1 (24 May 2006)
210 ---------------------------
212  Bugs fixed:
213  * Fix issue #67: malfunction caused by RCS branches rooted at revision 1.0.
216 Version 1.3.0 (18 August 2005)
217 ------------------------------
219  Bugs fixed:
220  * Fix cvs2svn's dumpfile output to work after Subversion's r12645.
221  * Fix issue #71: Avoid resyncing two consecutive CVS revs to same time.
222  * Fix issue #88: Don't allow resyncing to throw off CVS revision order.
223  * Fix issue #89: Handle initially dead branch revisions acceptably.
224  * Fix some branch-filling bugs (r1429, r1444).
226  Improvements and output changes:
227  * Better --encoding support when iconv_codec module is available.
228  * Speedups to pass8 (r1421)
229  * Use standard "rNNN" syntax when printing Subversion revisions.
232 Version 1.2.1 (14 February 2005)
233 --------------------------------
235  Bugs fixed:
236  * Fix cvs2svn's dumpfile output to work after Subversion's r12645.
239 Version 1.2.0 (11 January 2005)
240 -------------------------------
242  New features:
243  * --fs-type=TYPE: make it possible to specify the filesystem type.
245  Bugs fixed:
246  * Convert files with svn:eol-style to have LF end of lines only.
247  * Fix hang in pass 8 for files that ended with a CR.
248  * Import unexpanded keywords into the repository.
249  * Fix the handling of the $Revision$ keyword.
250  * Fix bug in branch/tag creation edge case.
253 Version 1.1.0 (15 September 2004)
254 ---------------------------------
256  New features:
257  * --symbol-transform: change tag and branch names using regular expressions.
258  * Flush log after writing, for better feedback when using 'tee'.
260  Bugs fixed:
261  * Issue 74: No longer attempt to change non-existent files.
262  * Allow the Subversion repository created to have spaces in its name.
263  * Avoid erroring when using a svnadmin that uses FSFS by default.
266 Version 1.0.0 (25 August 2004)
267 ------------------------------
269  * The cvs2svn project comes of age.