More intelligent empty directory removal (Tom Widmer)
[jelmer/python-fastimport.git] / NEWS
1 ============================
2 bzr-fastimport Release Notes
3 ============================
4
5 .. contents::
6
7 In Development
8 ==============
9
10 Compatability Breaks
11 --------------------
12
13 New Features
14 ------------
15
16 * The fast-import command now takes an optional but recommended
17   DESTINATION argument. A repository will be created at this
18   location and branches will be created within there. If the user
19   is running bzr 1.17 up to 2.0, format "2a" is used for these,
20   otherwise the default format is used. A format can be explicitly
21   given using the new --format option. (Ian Clatworthy)
22
23 * Wrapper commands simplifying the generation of fast-import
24   files from other tools are now provided. The general usage is:
25
26     bzr fast-export-from-xxx SOURCE project.fi
27
28   Before starting an export, these commands make an effort to
29   check that dependent tools are installed. So far, wrapper
30   commands are available for cvs, darcs, git, hg (Mercurial),
31   mnt (Monotone), p4 (Perforce) and svn (Subversion).
32   (Ian Clatworthy, Matt McClure)
33
34 * darcs-fast-export is now bundled. In fact, the project has
35   merged into this one for the purposes of ongoing bug fixing
36   and development. (Miklos Vajna)
37
38 Improvements
39 ------------
40
41 * If a fast-import source ends in ".gz", it is assumed to be in
42   gzip format and the stream is implicitly uncompressed. This
43   means fast-import dump files generated by fast-export-from-xxx
44   can be stored gzipped to save space. (Ian Clatworthy)
45
46 * The working tree is now implicitly updated for trunk. Other
47   branches still need to be explicitly created using 'bzr update'.
48   (Ian Clatworthy)
49
50 * Directories that become empty following a delete or rename of
51   one of their children are now implicitly pruned. If required,
52   this will be made optional at a later date.
53   (Tom Widmer, Ian Clatworthy)
54
55 * Blob tracking is now more intelligently done by an implicit
56   first pass to collect blob usage statistics. This eliminates
57   the need for an explicit 2-step process in all cases except
58   where stdin is used as the input source. (Ian Clatworthy)
59
60 * Updated the bundled version of hg-fast-export to be the latest
61   code (25-May-2009) from http://repo.or.cz/w/fast-export.git.
62   (Ian Clatworthy)
63
64 Bug Fixes
65 ---------
66
67 * Fixed the format used to create branches in a shared repository.
68   It now selects the best branch format based on the repository
69   format, rather than assume the default branch format is the right
70   one. (Ian Clatworthy)
71
72 * Fixed inventory delta generation when deleting directories.
73   (Previously the child paths included were relative to the
74   directory when they ought to be relative to the root.)
75   (Ian Clatworthy)
76
77 * Gracefully handle email addresses with unicode characters.
78   (Ian Clatworthy)
79
80 * Gracefully handle an empty input stream. (Gonéri Le Bouder)
81
82 * Gracefully handle git submodules by ignoring them.
83   (Ian Clatworthy)
84
85 * Get git-bzr working again. (Gonéri Le Bouder)
86
87 Documentation
88 -------------
89
90 * Improved documentation has been published in the Bazaar Data Migration
91   Guide: http://doc.bazaar-vcs.org/migration/en/data-migration/.
92
93 Testing
94 -------
95
96 Internals
97 ---------
98
99
100 0.8 22-Jul-2009
101 ===============
102
103 Compatibility Breaks
104 --------------------
105
106 * ``exporters/bzr-fast-export`` has been replaced with a
107   ``fast-export`` command. Some minor issues have been
108   fixed at the same time: the first commit now goes into
109   refs/heads/master (not refs/head/tmp); there's no
110   checkpoint at the top of the stream; parent commits are
111   now always given lower mark numbers than the commits they
112   are merged into. (Ian Clatworthy)
113
114 * The ``fast-import`` command now uses a different mapping of
115   git reference names to bzr branch names. In summary:
116   
117   * ``refs/heads/foo`` is mapped to ``foo``
118   * ``refs/remotes/origin/foo`` is mapped to ``foo.remote``
119   * ``refs/tags/foo`` is mapped to ``foo.tag``
120   * ``*/master`` is mapped to ``trunk``, ``trunk.remote``, etc.
121   * ``*/trunk`` is mapped to ``git-trunk``, ``git-trunk.remote``, etc.
122
123   This new mapping has been introduced so that more natural
124   branch names are used and to enable round-tripping back to git.
125   (Ian Clatworthy)
126
127 * The old ``fast-import-filter`` command is now called
128   ``fast-import-query``. ``fast-import-filter`` now
129   really filters the input to produce a fast-import stream
130   based on filtering criteria. See below.
131   (Ian Clatworthy)
132
133 * The ``--inv-fulltext`` option is no longer supported. It was
134   only used in experimental mode for old versions of bzrlib so
135   it added more complexity than value. (Ian Clatworthy)
136
137 New Features
138 ------------
139
140 * Added ``fast-import-filter`` command for splitting out a
141   subdirectory or bunch of files into their own project. It can
142   also be used to create a new repository without any history
143   for nominated files and directories. This is useful for
144   removing information which is a security risk, huge binary
145   files like ISO images, etc.
146   (Ian Clatworthy)
147
148 * Copying of files and symbolic links is now supported.
149   (Ian Clatworthy)
150
151 * Initial cut at reset support. (Brian de Alwis, Ian Clatworthy)
152
153 Improvements
154 ------------
155
156 * If ``refs/heads/xxx`` and ``refs/remotes/origin/xxx`` are both
157   defined, the latter is now mapped to a bzr branch called
158   ``xxx.remote`` rather than ``remotes--origins--xxx``.
159   (Ian Clatworthy)
160
161 * ``bzr fast-import-info`` now handles an unlimited # of parents for a
162   revision. The spec suggests the maximum ought to be 16 but the linux
163   kernel has revisions with more than that.
164   (Ian Clatworthy)
165
166 * ``bzr fast-import-info`` now reports on things that may need caching,
167   i.e. merges, rename old paths and copy source paths.
168   (Ian Clatworthy)
169
170 * Tag commands with a missing from clause now produce a warning but
171   are otherwise ignored. (Scott James Remnant, Ian Clatworthy)
172
173 * The fastimport-id-map file can now have more revisions than the
174   repository. (Scott James Remnant)
175
176 * Updated the bundled version of hg-fast-export to be the latest
177   code from http://repo.or.cz/w/fast-export.git. It should now
178   support recent Mercurial releases.
179   (Ian Clatworthy, #318903)
180
181 Bug Fixes
182 ---------
183
184 * Fixed a *bad* bug where filecopy commands were being parsed
185   as filerename commands. Repositories generated by previous
186   version of bzr-fast-import where the input stream contained
187   filecopy commands might be missing data (the copy source will
188   no longer be there if it was unchanged since the copy happened)
189   and ought to be regenerated.
190   (Ian Clatworthy)
191
192 * Fixed how the per-file graph is generated. The per-file graph
193   may still be less than perfect in the case where a file is only
194   changed in a merge and not the parent, but in the vast majority
195   of cases now, ``bzr check`` should no longer report inconsistent
196   parents. (Ian Clatworthy)
197
198 * Fix ``os`` import as needed on Windows.
199   (Ian Clatworthy, esskov, #264988)
200
201 * Handle a directory turning into a file and then the children
202   of that directory being deleted.
203   (Ian Clatworthy, #309486)
204
205 * Handle an empty email section.
206   (Ian Clatworthy)
207
208 * Handle multiple merges within the one merge clause. That's illegal
209   according to the spec but git-fast-export does it.
210   (Ian Clatworthy, #259711)
211
212 * Handle names and paths that aren't utf8 encoded. The spec recommends
213   utf8 encoding of these but git-fast-export doesn't always do that.
214   (Ian Clatworthy, #289088)
215
216 * Ignore lightweight tags with no from clause rather than abort.
217   (It seems git-fast-export outputs these commands frequently now
218   while it didn't appear to in early versions.)
219   (Ian Clatworthy, edice, #259711)
220
221 * Import into rich-root (and subtree) repositories without aborting.
222   (Ian Clatworthy, #300921)
223
224 * Recursively delete children when a directory is deleted.
225   (Scott James Remnant)
226
227 * The ``deleteall`` command now only tries to delete files in the
228   nominated branch, not all known files. As a consequence,
229   it should now be possible (if it wasn't before) to import
230   multiple Darcs branches (via darcs-fast-export) at once.
231   (Ian Clatworthy)
232
233 Testing
234 -------
235
236 * A large number of tests have been added.
237   (Ian Clatworthy)
238
239 Internals
240 ---------
241
242 * Refactored ``processors/generic_processor.py`` into a bunch of modules.
243   (Ian Clatworthy)
244
245
246 0.7 09-Feb-2009
247 ===============
248
249 Compatibility Breaks
250 --------------------
251
252 * bzr-fast-export.py renamed to bzr-fast-export.
253   (Jelmer Vernooij)
254
255 Improvements
256 ------------
257
258 * Add support for the deleteall command.
259   (Miklos Vajna, #284941)
260
261 Bug Fixes
262 ---------
263
264 * bzr-fast-export now exports rm+mv correctly.
265   (Jonas)
266
267 * Fix recursive rename handling in bzr-fast-export.
268   (Pieter de Bie, #287785)
269
270 * hg-fast-export should use binary mode on Windows.
271   (Alexey Stukalov)
272
273 * setup.py no longer assumes python2.4.
274   (schickb@gmail.com)
275
276 * setup.py support fixed.
277   (Jelmer Vernooij)
278
279 * Update the last-modified revision for a renamed file.
280   (John Arbash Meinel)
281
282
283 0.6 23-Jul-2008
284 ===============
285
286 Improvements
287 ------------
288
289 * Added NEWS containing Release Notes. (Ian Clatworthy)
290
291 * ``bzr help fastimport`` now provides help that is useful.
292   (Ian Clatworthy)
293
294 * Numerous fixes to ``bzr-fast-export.py`` to improve round-tripping
295   with Git. Added ``--import-marks`` and ``--export-marks`` options
296   to ``fast-import`` as well.
297   (Pieter de Bie)
298
299 * ``svn-fast-export.py`` now supports a regular-expression to specify
300   the branches to export.
301   (Mirko Friedenhagen)
302
303 Bug Fixes
304 ---------
305
306 * Support the new Repository API added in bzr.dev r3510. The old API
307   will be used for earlier versions of bzr including bzr 1.6beta2 and
308   earlier. (Ian Clatworthy)
309
310 Compatibility Breaks
311 --------------------
312
313 * The ``--inv-fulltext`` option is not yet supported when the new
314   Repository API is used to import revisions. The option can be
315   provided but it will be ignored. (Ian Clatworthy)
316
317 API Breaks
318
319 * The ``RevisionLoader`` class has been renamed to ``RevisionLoader1``.
320   The ``ExperimentalRevisionLoader`` class has been renamed to
321   ``ImportRevisionLoader1``. New classes called ``RevisionLoader2``
322   and ``ImportRevisionLoader2`` are provided that use the new
323   Repository API. (Ian Clatworthy)
324
325 Internals
326 ---------
327
328 * Improved packaging by adding a setup.py file. (Ian Clatworthy)
329
330
331 0.5 02-Jun-2008
332 ===============
333
334 * Version suitable for Bazaar 1.5.
335   (Ian Clatworthy)