1
bzr development version
5
* The revision specifier "revno:" is extended to accept the syntax
6
revno:N:branch. For example,
7
revno:42:http://bazaar-vcs.org/bzr/bzr.dev/ means revision 42 in
8
bzr.dev. (Matthieu Moy)
10
* The hard-coded built-in ignore rules have been removed. There are
11
now two rulesets which are enforced. A user global one in
12
~/.bazaar/ignore which will apply to every tree, and the tree
13
specific one '.bzrignore'.
14
~/.bazaar/ignore will be created if it does not exist, but with
15
a more conservative list than the old default.
16
This fixes bugs with default rules being enforced no matter what.
17
The old list of ignore rules from bzr is available by
18
running 'bzr ignore --old-default-rules'.
19
(Robert Collins, Martin Pool, John Arbash Meinel)
21
* Tests updates to ensure proper URL handling, UNICODE support, and
22
proper printing when the user's terminal encoding cannot display
23
the path of a file that has been versioned.
24
``bzr branch`` can take a target URL rather than only a local directory.
25
Branch.get_parent()/set_parent() now save a relative path if possible,
26
and normalize the parent based on root, allowing access across
27
different transports. (John Arbash Meinel, Wouter van Heyst, Martin Pool)
28
(Malone #48906, #42699, #40675, #5281, #3980, #36363, #43689,
31
* On Unix, detect terminal width using an ioctl not just $COLUMNS.
32
Use terminal width for single-line logs from ``bzr log --line`` and
33
pending-merge display. (Robert Widhopf-Fenk, Gustavo Niemeyer)
36
* On Windows, detect terminal width using GetConsoleScreenBufferInfo.
39
* Speedup improvement for 'date:'-revision search. (Guillaume Pinot).
41
* Show the correct number of revisions pushed when pushing a new branch.
44
* 'bzr selftest' now shows a progress bar with the number of tests, and
45
progress made. 'make check' shows tests in -v mode, to be more useful
46
for the PQM status window. (Robert Collins).
47
When using a progress bar, failed tests are printed out, rather than
48
being overwritten by the progress bar until the suite finishes.
51
* 'bzr selftest --benchmark' will run a new benchmarking selftest.
52
'bzr selftest --benchmark --lsprof-timed' will use lsprofile to generate
53
profile data for the individual profiled calls, allowing for fine
54
grained analysis of performance.
55
(Robert Collins, Martin Pool).
57
* 'bzr commit' shows a progress bar. This is useful for commits over sftp
58
where commit can take an appreciable time. (Robert Collins)
60
* 'bzr add' is now less verbose in telling you what ignore globs were
61
matched by files being ignored. Instead it just tells you how many
62
were ignored (because you might reasonably be expecting none to be
63
ignored). 'bzr add -v' is unchanged and will report every ignored
64
file. (Robert Collins).
66
* ftp now has a test server if medusa is installed. As part of testing,
67
ftp support has been improved, including support for supplying a
68
non-standard port. (John Arbash Meinel).
70
* 'bzr log --line' shows the revision number, and uses only the
71
first line of the log message (#5162, Alexander Belchenko;
74
* 'bzr status' has had the --all option removed. The 'bzr ls' command
75
should be used to retrieve all versioned files. (Robert Collins)
77
* 'bzr bundle OTHER/BRANCH' will create a bundle which can be sent
78
over email, and applied on the other end, while maintaining ancestry.
79
This bundle can be applied with either 'bzr merge' or 'bzr pull',
80
the same way you would apply another branch.
81
(John Arbash Meinel, Aaron Bentley)
83
* 'branches.conf' has been changed to 'locations.conf', since it can apply
84
to more locations than just branch locations.
87
* 'bzr whoami' can now be used to set your identity from the command line,
88
for a branch or globally. (Robey Pointer)
90
* 'bzr checkout' now aliased to 'bzr co', and 'bzr annotate' to 'bzr ann'.
93
* 'bzr revert DIRECTORY' now reverts the contents of the directory as well.
96
* 'bzr get sftp://foo' gives a better error when paramiko is not present.
97
Also updates things like 'http+pycurl://' if pycurl is not present.
98
(John Arbash Meinel) (Malone #47821, #52204)
100
* New env variable BZR_PROGRESS_BAR, sets the default progress bar type.
101
Can be set to 'none' or 'dummy' to disable the progress bar, 'dots' or
102
'tty' to create the respective type. (John Arbash Meinel, #42197, #51107)
104
* Improve the help text for 'bzr diff' to explain what various options do.
105
(John Arbash Meinel, #6391)
107
* 'bzr uncommit -r 10' now uncommits revisions 11.. rather than uncommitting
108
revision 10. This makes -r10 more in line with what other commands do.
109
'bzr uncommit' also now saves the pending merges of the revisions that
110
were removed. So it is safe to uncommit after a merge, fix something,
111
and commit again. (John Arbash Meinel, #32526, #31426)
113
* 'bzr init' now also works on remote locations.
114
(Wouter van Heyst, #48904)
116
* HTTP support has been updated. When using pycurl we now support
117
connection keep-alive, which reduces dns requests and round trips.
118
And for both urllib and pycurl we support multi-range requests,
119
which decreases the number of round-trips. Performance results for
120
``bzr branch http://bazaar-vcs.org/bzr/bzr.dev/`` indicate
121
http branching is now 2-3x faster, and ``bzr pull`` in an existing
122
branch is as much as 4x faster.
123
(Michael Ellerman, Johan Rydberg, John Arbash Meinel, #46768)
127
* Fix shadowed definition of TestLocationConfig that caused some
128
tests not to run. (#32587, Erik Bågfors, Michael Ellerman,
131
* Fix unnecessary requirement of sign-my-commits that it be run from
132
a working directory. (Martin Pool, Robert Collins)
134
* 'bzr push location' will only remember the push location if it succeeds
135
in connecting to the remote location. (#49742, John Arbash Meinel)
137
* 'bzr revert' no longer toggles the executable bit on win32
138
(#45010, John Arbash Meinel)
140
* Handle broken pipe under win32 correctly. (John Arbash Meinel)
142
* sftp tests now work correctly on win32 if you have a newer paramiko
145
* Cleanup win32 test suite, and general cleanup of places where
146
file handles were being held open. (John Arbash Meinel)
148
* When specifying filenames for 'diff -r x..y', the name of the file in the
149
working directory can be used, even if its name is different in both x
152
* File-ids containing single- or double-quotes are handled correctly by
153
push. (#52227, Aaron Bentley)
155
* Normalize unicode filenames to ensure cross-platform consistency.
156
(John Arbash Meinel, #43689)
158
* The argument parser can now handle '-' as an argument. Currently
159
no code interprets it specially (it is mostly handled as a file named
160
'-'). But plugins, and future operations can use it.
161
(John Arbash meinel, #50984)
163
* Bundles can properly read binary files with a plain '\r' in them.
164
(John Arbash Meinel, #51927)
166
* Tuning iter_entries() to be more efficient (John Arbash Meinel, #5444)
168
* Lots of win32 fixes (the test suite passes again).
169
(John Arbash Meinel, #50155)
171
* Handle openbsd returning None for sys.getfilesystemencoding() (#41183)
173
* Support ftp APPE (append) to allow Knits to be used over ftp (#42592)
175
* Removals are only committed if they match the filespec (or if there is
176
no filespec). (#46635, Aaron Bentley)
178
* smart-add recurses through all supplied directories
179
(John Arbash Meinel, #52578)
181
* Make the bundle reader extra lines before and after the bundle text.
182
This allows you to parse an email with the bundle inline.
183
(John Arbash Meinel, #49182)
185
* Change the file id generator to squash a little bit more. Helps when
186
working with long filenames on windows. (Also helps for unicode filenames
187
not generating hidden files). (John Arbash Meinel, #43801)
189
* Restore terminal mode on C-c while reading sftp password. (#48923,
190
Nicholas Allen, Martin Pool)
192
* Timestamps are rounded to 1ms, and revision entries can be recreated
193
exactly. (John Arbash Meinel, Jamie Wilkinson, #40693)
195
* Branch.base has changed to a URL, but ~/.bazaar/locations.conf should
196
use local paths, since it is user visible (John Arbash Meinel, #53653)
198
* ``bzr status foo`` when foo was unversioned used to cause a full delta
199
to be generated (John Arbash Meinel, #53638)
203
* Combine the ignore rules into a single regex rather than looping over
204
them to reduce the threshold where N^2 behaviour occurs in operations
205
like status. (Jan Hudec, Robert Collins).
207
* Appending to bzrlib.DEFAULT_IGNORE is now deprecated. Instead, use
208
one of the add functions in bzrlib.ignores. (John Arbash Meinel)
210
* 'bzr push' should only push the ancestry of the current revision, not
211
all of the history in the repository. This is especially important for
212
shared repositories. (John Arbash Meinel)
214
* bzrlib.delta.compare_trees now iterates in alphabetically sorted order,
215
rather than randomly walking the inventories. (John Arbash Meinel)
217
* Doctests are now run in temporary directories which are cleaned up when
218
they finish, rather than using special ScratchDir/ScratchBranch objects.
221
* Split ``check`` into separate methods on the branch and on the repository,
222
so that it can be specialized in ways that are useful or efficient for
223
different formats. (Martin Pool, Robert Collins)
225
* Deprecate Repository.all_revision_ids; most methods don't really need
226
the global revision graph but only that part leading up to a particular
227
revision. (Martin Pool, Robert Collins)
229
* Add a BzrDirFormat control_formats list which allows for control formats
230
that do not use '.bzr' to store their data - i.e. '.svn', '.hg' etc.
231
(Robert Collins, Jelmer Vernooij).
233
* bzrlib.diff.external_diff can be redirected to any file-like object.
234
Uses subprocess instead of spawnvp.
235
(#4047, #48914, James Henstridge, John Arbash Meinel)
237
* New command line option '--profile-imports', which will install a custom
238
importer to log time to import modules and regex compilation time to
239
sys.stderr (John Arbash Meinel)
241
* 'EmptyTree' is now deprecated, please use repository.revision_tree(None)
242
instead. (Robert Collins)
248
* setup.py failed to install launchpad plugin. (Martin Pool)
254
* Fix failure to commit a merge in a checkout. (Martin Pool,
255
Robert Collins, Erik Bågfors, #43959)
257
* Nicer messages from 'commit' in the case of renames, and correct
258
messages when a merge has occured. (Robert Collins, Martin Pool)
260
* Separate functionality from assert statements as they are skipped in
261
optimized mode of python. Add the same check to pending merges.
262
(#44443, Olaf Conradi)
266
* Do not show the None revision in output of bzr ancestry. (Olaf Conradi)
268
* Add info on standalone branches without a working tree.
269
(#44155, Olaf Conradi)
271
* Fix bug in knits when raising InvalidRevisionId. (#44284, Olaf Conradi)
275
* Make editor invocation comply with Debian Policy. First check
276
environment variables VISUAL and EDITOR, then try editor from
277
alternatives system. If that all fails, fall back to the pre-defined
278
list of editors. (#42904, Olaf Conradi)
282
* New 'register-branch' command registers a public branch into
283
Launchpad.net, where it can be associated with bugs, etc.
284
(Martin Pool, Bjorn Tillenius, Robert Collins)
288
* New public api in InventoryEntry - 'describe_change(old, new)' which
289
provides a human description of the changes between two old and
290
new. (Robert Collins, Martin Pool)
294
* Fix test case for bzr info in upgrading a standalone branch to metadir,
295
uses bzrlib api now. (Olaf Conradi)
299
NOTES WHEN UPGRADING:
301
Release 0.8 of bzr introduces a new format for history storage, called
302
'knit', as an evolution of to the 'weave' format used in 0.7. Local
303
and remote operations are faster using knits than weaves. Several
304
operations including 'init', 'init-repo', and 'upgrade' take a
305
--format option that controls this. Branching from an existing branch
306
will keep the same format.
308
It is possible to merge, pull and push between branches of different
309
formats but this is slower than moving data between homogenous
310
branches. It is therefore recommended (but not required) that you
311
upgrade all branches for a project at the same time. Information on
312
formats is shown by 'bzr info'.
314
bzr 0.8 now allows creation of 'repositories', which hold the history
315
of files and revisions for several branches. Previously bzr kept all
316
the history for a branch within the .bzr directory at the root of the
317
branch, and this is still the default. To create a repository, use
318
the new 'bzr init-repo' command. Branches exist as directories under
319
the repository and contain just a small amount of information
320
indicating the current revision of the branch.
322
bzr 0.8 also supports 'checkouts', which are similar to in cvs and
323
subversion. Checkouts are associated with a branch (optionally in a
324
repository), which contains all the historical information. The
325
result is that a checkout can be deleted without losing any
326
already-committed revisions. A new 'update' command is also available.
328
Repositories and checkouts are not supported with the 0.7 storage
329
format. To use them you must upgrad to either knits, or to the
330
'metaweave' format, which uses weaves but changes the .bzr directory
336
* Sftp paths can now be relative, or local, according to the lftp
337
convention. Paths now take the form:
338
sftp://user:pass@host:port/~/relative/path
340
sftp://user:pass@host:port/absolute/path
342
* The FTP transport now tries to reconnect after a temporary
343
failure. ftp put is made atomic. (Matthieu Moy)
345
* The FTP transport now maintains a pool of connections, and
346
reuses them to avoid multiple connections to the same host (like
347
sftp did). (Daniel Silverstone)
349
* The bzr_man.py file has been removed. To create the man page now,
350
use ./generate_docs.py man. The new program can also create other files.
351
Run "python generate_docs.py --help" for usage information. (Hans
352
Ulrich Niedermann & James Blackwell).
354
* Man Page now gives full help (James Blackwell). Help also updated to
355
reflect user config now being stored in .bazaar (Hans Ulrich
358
* It's now possible to set aliases in bazaar.conf (Erik Bågfors)
360
* Pull now accepts a --revision argument (Erik Bågfors)
362
* 'bzr re-sign' now allows multiple revisions to be supplied on the command
363
line. You can now use the following command to sign all of your old commits.
364
find .bzr/revision-store// -name my@email-* \
365
| sed 's/.*\/\/..\///' \
368
* Upgrade can now upgrade over the network. (Robert Collins)
370
* Two new commands 'bzr checkout' and 'bzr update' allow for CVS/SVN-alike
371
behaviour. By default they will cache history in the checkout, but
372
with --lightweight almost all data is kept in the master branch.
375
* 'revert' unversions newly-versioned files, instead of deleting them.
377
* 'merge' is more robust. Conflict messages have changed.
379
* 'merge' and 'revert' no longer clobber existing files that end in '~' or
382
* Default log format can be set in configuration and plugins can register
383
their own formatters. (Erik Bågfors)
385
* New 'reconcile' command will check branch consistency and repair indexes
386
that can become out of sync in pre 0.8 formats. (Robert Collins,
389
* New 'bzr init --format' and 'bzr upgrade --format' option to control
390
what storage format is created or produced. (Robert Collins,
393
* Add parent location to 'bzr info', if there is one. (Olaf Conradi)
395
* New developer commands 'weave-list' and 'weave-join'. (Martin Pool)
397
* New 'init-repository' command, plus support for repositories in 'init'
398
and 'branch' (Aaron Bentley, Erik Bågfors, Robert Collins)
400
* Improve output of 'info' command. Show all relevant locations related to
401
working tree, branch and repository. Use kibibytes for binary quantities.
402
Fix off-by-one error in missing revisions of working tree. Make 'info'
403
work on branches, repositories and remote locations. Show locations
404
relative to the shared repository, if applicable. Show locking status
405
of locations. (Olaf Conradi)
407
* Diff and merge now safely handle binary files. (Aaron Bentley)
409
* 'pull' and 'push' now normalise the revision history, so that any two
410
branches with the same tip revision will have the same output from 'log'.
413
* 'merge' accepts --remember option to store parent location, like 'push'
414
and 'pull'. (Olaf Conradi)
416
* bzr status and diff when files given as arguments do not exist
417
in the relevant trees. (Martin Pool, #3619)
419
* Add '.hg' to the default ignore list. (Martin Pool)
421
* 'knit' is now the default disk format. This improves disk performance and
422
utilization, increases incremental pull performance, robustness with SFTP
423
and allows checkouts over SFTP to perform acceptably.
424
The initial Knit code was contributed by Johan Rydberg based on a
425
specification by Martin Pool.
426
(Robert Collins, Aaron Bentley, Johan Rydberg, Martin Pool).
428
* New tool to generate all-in-one html version of the manual. (Alexander
431
* Hitting CTRL-C while doing an SFTP push will no longer cause stale locks
432
to be left in the SFTP repository. (Robert Collins, Martin Pool).
434
* New option 'diff --prefix' to control how files are named in diff
435
output, with shortcuts '-p0' and '-p1' corresponding to the options for
436
GNU patch. (Alexander Belchenko, Goffredo Baroncelli, Martin Pool)
438
* Add --revision option to 'annotate' command. (Olaf Conradi)
440
* If bzr shows an unexpected revision-history after pulling (perhaps due
441
to a reweave) it can now be corrected by 'bzr reconcile'.
446
* Commit is now verbose by default, and shows changed filenames and the
447
new revision number. (Robert Collins, Martin Pool)
449
* Unify 'mv', 'move', 'rename'. (#5379, Matthew Fuller)
451
* 'bzr -h' shows help. (#35940, Martin Pool, Ian Bicking)
453
* Make 'pull' and 'push' remember location on failure using --remember.
456
* For compatibility, make old format for using weaves inside metadir
457
available as 'metaweave' format. Rename format 'metadir' to 'default'.
458
Clean up help for option --format in commands 'init', 'init-repo' and
459
'upgrade'. (Olaf Conradi)