Remove references to the IRC channel, which seems defunct.
[cvs2svn/cvs2svn.git] / CHANGES
blob9c22b1a456f844fb779a7ba3d33386f203c17ed1
1 Version ?.?.?
2 -------------
4  Bugs fixed:
5  *
7  Improvements and output changes:
8  *
10  Miscellaneous:
11  *
14 Version 2.5.0 (26 November 2017)
15 --------------------------------
17  Bugs fixed:
18  * Handle non-ASCII, non-UTF8 filenames in .cvsignore files.
19  * ExternalBlobGenerator: Don't fail if no revisions are needed for a file.
20  * Fix the handling of symbol-matching regexps that include "|".
21  * Handle excluded paths under Attic directories, too.
22  * cvs2git: fix logging in process_post_commit().
23  * Prefer to break internal cycles at the *largest* timestamp gaps.
24  * Don't try to delete a supposed "revision 1.1" if it has a predecessor.
26  Improvements and output changes:
27  * Various small documentation fixes and improvements.
28  * Make cvs2xxx runnable under PyPy.
29  * Avoid some allusions to Subversion when converting to another VCS.
30  * Use tempfile.mkdtemp() to choose the location for temporary files.
31  * Write all progress information to stderr rather than stdout.
32  * Write cvs2git and cvs2bzr output to stdout by default.
33  * Improve build reproducibility by respecting $SOURCE_DATE_EPOCH.
34  * cvs2git: don't add so much useless metadata to symbol commits.
35  * cvs2git: allow a file to be set executable in Git via "svn:executable"
37  Miscellaneous:
38  * Use "co --version" rather than the deprecated "co -V".
41 Version 2.4.0 (22 September 2012)
42 ---------------------------------
44  New features:
45  * Store CVS file descriptions in a Subversion property "cvs:description".
46  * SVN: Optionally include empty directories from the CVS repository.
47  * Much faster cvs2git conversions possible via --use-external-blob-generator.
48  * Use file properties for more flexibility over keyword and EOL handling.
49  * Add a ConditionalPropertySetter.
50  * Allow CVS repository paths to be excluded from the conversion.
51  * Normalize EOLs in CVS log messages to LF.
52  * Ignore vendor branch declarations that refer to non-existent branches.
54  Bugs fixed:
55  * Issue #31: cvs2svn does not convert empty directories.
56  * Issue #127: Dead "file X added on branch Y" revisions not always dropped.
57  * Fix --dry-run for cvs2git and cvs2bzr.
59  Improvements and output changes:
60  * More aggressively omit unnecessary dead revisions.
61  * Consider it a failure if "cvs" or "co" writes something to stderr.
62  * Add concept of "file properties", which are only computed once per file.
63  * Refuse to accept a default branch that is not a top-level branch.
64  * Make check of illegal filename characters dependent on the target VCS.
65  * Improve error reporting for invalid date strings in CVS.
66  * Many documentation improvements.
67  * Allow grafting a branch onto a parent that has itself been grafted.
68  * Slightly improve choice of parent branch for vendor branches.
69  * Only import "database" if used, to avoid error if no DB module installed.
70  * Ignore newphrases in RCS files more robustly.
71  * Fix the expansion of the $Source$ keyword for Attic files.
72  * Various other minor improvements and fixes.
74  Miscellaneous:
75  * Sort large files using Python to avoid dependency on GNU sort.
78 Version 2.3.0 (22 August 2009)
79 ------------------------------
81  New features:
82  * Add a "cvs2git" script for starting conversions to git (or Mercurial).
83  * Add a "cvs2bzr" script for starting conversions to Bazaar.
84  * Generate manual pages automatically via new --man option.
85  * Allow --mime-types and --auto-props options to be specified more than once.
86  * Support author transforms when converting to Subversion.
87  * Allow unlabeled branches to be renamed using SymbolTransforms.
89  Bugs fixed:
90  * cvs2git with non-inline blobs: a revision after a delete could be empty.
91  * Fix timezone handling under Windows (which does not respect TZ variable).
92  * Do path comparisions platform-independently in symbol transform classes.
93  * Fix https://bugs.launchpad.net/pld-linux/+bug/385920
95  Improvements and output changes:
96  * Output error message if a revision's deltatext is missing.
97  * Improve contrib/verify-cvs2svn.py (used for testing conversion accuracy).
99  Miscellaneous:
100  * Add an IgnoreSymbolTransform class, for ignoring symbols matching a regexp.
101  * Remove some DeprecationWarnings when running under newer Python versions.
104 Version 2.2.0 (23 November 2008)
105 --------------------------------
107  New features:
108  * cvs2git: Omit fixup branch if a tag can be copied from an existing revision.
109  * cvs2git: Add option to set the maximum number of merge sources per commit.
110  * Allow arbitrary SVN directories to be created when a project is created.
111  * Allow vendor branches to be excluded, grafting child symbols to trunk.
112  * By default, omit trivial import branches from conversion.
113    - Add --keep-trivial-imports option to get old behavior.
114  * By default, don't include .cvsignore files in output (except as svn:ignore).
115    - Add option --keep-cvsignore to get the old behavior.
116  * Allow the user to specify the form of cvs2svn-generated log messages.
117  * Allow file contents to be written inline in git-fast-import streams.
118  * --create-option: allow arbitrary options to be passed to "svnadmin create".
119  * Improve handling of auto-props file:
120    - Discard extraneous spaces where they don't make sense.
121    - Warn if parts of the file might be commented out unintentionally.
122    - Warn if the user appears to be trying to quote a property value.
124  Bugs fixed:
125  * Fix issue #81: Remove svn:ignore property when .cvsignore is deleted.
126  * Fix svn dumpfile conformance:
127    - Don't include a leading '/' for Node-path.
128    - Include the Node-kind field when copying nodes.
129  * Make symlink test create symlinks explicitly, to avoid packaging problems.
130  * Accept symbol references to revision numbers that end with ".0".
132  Improvements and output changes:
133  * When -v, log reasons for symbol conversion choices (tag/branch/exclude).
134  * Log preferred parent determinations at verbose (rather than debug) level.
135  * Log symbol transformations at verbose (rather than warn) level.
136  * Log statistics about all symbol transformations at normal level.
137  * cvs2git: Generate lightweight rather than annotated tags.
138  * contrib/destroy_repository.py:
139    - Allow symbols, files, and directories to be renamed.
140    - Allow CVSROOT directory contents to be erased.
141    - Specify what aspects of a repo to destroy via command-line options.
143  Miscellaneous:
144  * cvs2svn now requires Python version 2.4 or later.
147 Version 2.1.1 (15 April 2008)
148 -----------------------------
150  Bugs fixed:
151  * Make files that are to be sorted more text-like to fix problem on Windows.
152  * Fix comment in header of --write-symbol-info output file.
154  Miscellaneous
155  * Adjust test suite for upstream changes in the svntest code.
158 Version 2.1.0 (19 February 2008)
159 --------------------------------
161  New features:
162  * Allow conversion of a CVS repository to git (experimental).
163    - Support mapping from cvs author names to git "Author <email>" form.
164  * Enhance symbol transform capabilities:
165    - Add SymbolMapper, for transforming specific symbols in specific files.
166    - Allow SymbolTransforms to cause a symbol to be discarded.
167  * Enhance symbol strategy capabilities:
168    - Write each CVS branch/tag to be written to an arbitrary SVN path.
169    - Choose which trunk/branch should serve as the parent of each branch/tag.
170    - --symbol-hints: manually specify how symbols should be converted.
171    - Make symbol strategy rules project-specific.
172  * --write-symbol-info: output info about CVS symbols.
173  * Add option ctx.decode_apple_single for handling AppleSingle-encoded files.
174  * Add a new, restartable pass that converts author and log_msg to Unicode.
175  * Allow properties to be left unset via auto-props using a leading '!'.
177  Bugs fixed:
178  * Fix issue #80: Empty CVS,v file not accepted.
179  * Fix issue #108: Create project TTB directories "just-in-time".
180  * Fix issue #112: Random test failures with Python 2.5.
181  * Fix issue #115: crash - Bad file descriptor.
182  * Fix the translation of line-end characters for eol-styles CR and CRLF.
184  Improvements and output changes:
185  * Create trunk/tags/branches directories for project when project is created.
186  * Improved conversion speed significantly, especially for large repositories.
187  * Ignore (with a warning) symbols defined to malformed revision numbers.
188  * Tolerate multiple definitions of a symbol to the same revision number.
189  * Handle RCS files that superfluously set the default branch to trunk.
190  * Allow '/' characters in CVS symbol names (creating multilevel SVN paths).
191  * Allow symbols to be transformed to contain '/' (allowing multilevel paths).
192  * Convert '\' characters to '/' (rather than '--') in symbol names.
193  * Make encoding problems fatal; to resolve, restart at CleanMetadataPass.
195  Miscellaneous:
196  * Change the default symbol handling option to --symbol-default=heuristic.
199 Version 2.0.1 (04 October 2007)
200 -------------------------------
202  Bugs fixed:
203  * Fix problem with keyword expansion when using --use-internal-co.
206 Version 2.0.0 (15 August 2007)
207 ------------------------------
209  New features:
210  * Add --use-internal-co to speed conversions, and make it the default.
211  * Add --retain-conflicting-attic-files option.
212  * Add --no-cross-branch-commits option.
213  * Add --default-eol option and deprecate --no-default-eol.
214  * RevisionRecorder hook allows file text/deltas to be recorded in pass 1.
215  * RevisionReader hook allow file text to be retrieved from RevisionRecorder.
216  * Slightly changed the order that properties are set, for more flexibility.
217  * Don't set svn:keywords on files for which svn:eol-style is not set.
218  * Implement issue #53: Allow --trunk='' for --trunk-only conversions.
220  Bugs fixed:
221  * Fix issue #97: Follow symlinks within CVS repository.
222  * Fix issue #99: cvs2svn tries to create a file twice.
223  * Fix issue #100: cvs2svn doesn't retrieve the right version.
224  * Fix issue #105: Conflict between directory and Attic file causes crash.
225  * Fix issue #106: SVNRepositoryMirrorParentMissingError.
226  * Fix missing command-line handling of --fallback-encoding option.
227  * Fix issue #85: Disable symbol sanity checks when in --trunk-only mode.
229  Improvements and output changes:
230  * Analyze CVS revision dependency graph, giving a more robust conversion.
231  * Improve choice of symbol parents when CVS history is ambiguous.
232  * In the case of clock skew to the past, resync forwards, not backwards.
233  * Treat timestamps that lie in the future as bogus, and adjust backwards.
234  * Gracefully handle tags that refer to nonexistent revisions.
235  * Check and fail if revision header appears multiple times.
236  * Gracefully handle multiple deltatext blocks for same revision.
237  * Be more careful about only processing reasonable *,v files.
238  * Improve checks for illegal filenames.
239  * Check if a directory name conflicts with a filename.
240  * When file is imported, omit the empty revision 1.1.
241  * If a non-trunk default branch is excluded, graft its contents to trunk.
242  * Omit the initial 'dead' revision when a file is added on a branch.
243  * Require --symbol-transform pattern to match entire symbol name.
244  * Treat files as binary by default instead of as text, because it is safer.
245  * Treat auto-props case-insensitively; deprecate --auto-props-ignore-case.
247  Miscellaneous:
248  * Add a simple (nonportable) script to log cvs2svn memory usage.
249  * Allow contrib/shrink_test_case.py script to try deleting tags and branches.
250  * Add --skip-initial-test option to contrib/shrink_test_case.py script.
253 Version 1.5.1 (28 January 2007)
254 -------------------------------
256  Bugs fixed:
257  * Add missing import in cvs2svn_lib/process.py.
258  * Fix omission of parsing of the --fallback-encoding option.
261 Version 1.5.0 (03 October 2006)
262 -------------------------------
264  New features:
265  * Support multiproject conversions (each gets its own trunk, tags, branches).
266  * New --options option to allow run-time options to be defined via a file.
267  * --co, --cvs, and --sort options to specify the paths to executables.
268  * Add new --fallback-encoding option.
270  Bugs fixed:
271  * Fix issue #86: Support multiple project roots per repository.
272  * Fix issue #104: Allow path to "sort" executable to be specified.
273  * Fix issue #8: Allow multiple --encoding options.
274  * Fix issue #109: Improve handling of fallback encodings.
276  Improvements and output changes:
277  * Further reduce conversion time and temporary space requirements.
279  Miscellaneous:
280  * Deprecate the --dump-only option (it is now implied by --dumpfile).
281  * Add scripts to help isolate conversion problems and shrink test cases.
282  * Add a script to search for illegal filenames in a CVS repository.
285 Version 1.4.0 (27 August 2006)
286 ------------------------------
288  New features:
289  * Support multicomponent --trunk, --tags, and --branches paths (issue #7).
290  * New --auto-props option allows file properties to be set via file.
291  * --force-branch and --force-tag options now accept regular expressions.
292  * Add --symbol-default option.
293  * Support multiple, ordered --encoding options.
295  Bugs fixed:
296  * Fix issue #93: Tags with forbidden characters converted to branches.
297  * Fix issue #102: Branch file, deleted in CVS, is present in SVN.
299  Improvements and output changes:
300  * Print informative warning message if a required program is missing.
301  * Output an error if any CVS filenames contain control characters.
302  * Clean up temporary files even for pass-by-pass conversions.
303  * Improve handling of commit dependencies and multibranch commits.
304  * Implemented issue #50 (performance change).
305  * Reduced the amount of temporary disk space needed during the conversion.
307  Miscellaneous:
308  * cvs2svn now requires Python version 2.2 or later.
309  * cvs2svn has been broken up into many smaller python modules for clarity.
312 Version 1.3.1 (24 May 2006)
313 ---------------------------
315  Bugs fixed:
316  * Fix issue #67: malfunction caused by RCS branches rooted at revision 1.0.
319 Version 1.3.0 (18 August 2005)
320 ------------------------------
322  Bugs fixed:
323  * Fix cvs2svn's dumpfile output to work after Subversion's r12645.
324  * Fix issue #71: Avoid resyncing two consecutive CVS revs to same time.
325  * Fix issue #88: Don't allow resyncing to throw off CVS revision order.
326  * Fix issue #89: Handle initially dead branch revisions acceptably.
327  * Fix some branch-filling bugs (r1429, r1444).
329  Improvements and output changes:
330  * Better --encoding support when iconv_codec module is available.
331  * Speedups to pass8 (r1421)
332  * Use standard "rNNN" syntax when printing Subversion revisions.
335 Version 1.2.1 (14 February 2005)
336 --------------------------------
338  Bugs fixed:
339  * Fix cvs2svn's dumpfile output to work after Subversion's r12645.
342 Version 1.2.0 (11 January 2005)
343 -------------------------------
345  New features:
346  * --fs-type=TYPE: make it possible to specify the filesystem type.
348  Bugs fixed:
349  * Convert files with svn:eol-style to have LF end of lines only.
350  * Fix hang in pass 8 for files that ended with a CR.
351  * Import unexpanded keywords into the repository.
352  * Fix the handling of the $Revision$ keyword.
353  * Fix bug in branch/tag creation edge case.
356 Version 1.1.0 (15 September 2004)
357 ---------------------------------
359  New features:
360  * --symbol-transform: change tag and branch names using regular expressions.
361  * Flush log after writing, for better feedback when using 'tee'.
363  Bugs fixed:
364  * Issue 74: No longer attempt to change non-existent files.
365  * Allow the Subversion repository created to have spaces in its name.
366  * Avoid erroring when using a svnadmin that uses FSFS by default.
369 Version 1.0.0 (25 August 2004)
370 ------------------------------
372  * The cvs2svn project comes of age.