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