Bazaar Release Notes — Breezy 3.0.2dev documentation

Table of Contents (3.0.2dev)

# Bazaar Release Notes

## bzr 1.1

Released

  2008-01-15

(no changes from 1.1rc1)

## bzr 1.1rc1

Released

  2008-01-05

### Changes

- Dotted revision numbers have been revised. Instead of growing longer with nested branches the branch number just increases. (eg instead of 1.1.1.1.1 we now report 1.2.1.) This helps scale long lived branches which have many feature branches merged between them. (John Arbash Meinel)

- The syntax `bzr diff branch1 branch2` is no longer supported. Use `bzr diff branch1 --new branch2` instead. This change has been made to remove the ambiguity where `branch2` is in fact a specific file to diff within `branch1`.

### Features

- New option to use custom template-based formats in `bzr version-info`. (Lukáš Lalinský)

- diff ‘–using’ allows an external diff tool to be used for files. (Aaron Bentley)

- New “lca” merge-type for fast everyday merging that also supports criss-cross merges. (Aaron Bentley)

### Improvements

- `annotate` now doesn’t require a working tree. (Lukáš Lalinský, #90049)

- `branch` and `checkout` can now use files from a working tree to to speed up the process. For checkout, this requires the new –files-from flag. (Aaron Bentley)

- `bzr diff` now sorts files in alphabetical order. (Aaron Bentley)

- `bzr diff` now works on branches without working trees. Tree-less branches can also be compared to each other and to working trees using the new diff options `--old` and `--new`. Diffing between branches, with or without trees, now supports specific file filtering as well. (Ian Clatworthy, #6700)

- `bzr pack` now orders revision texts in topological order, with newest at the start of the file, promoting linear reads for `bzr log` and the like. This partially fixes #154129. (Robert Collins)

- Merge directives now fetch prerequisites from the target branch if needed. (Aaron Bentley)

- pycurl now handles digest authentication. (Vincent Ladeuil)

- `reconfigure` can now convert from repositories. (Aaron Bentley)

- `-l` is now a short form for `--limit` in `log`. (Matt Nordhoff)

- `merge` now warns when merge directives cause cherrypicks. (Aaron Bentley)

- `split` now supported, to enable splitting large trees into smaller pieces. (Aaron Bentley)

### Bugfixes

- Avoid AttributeError when unlocking a pack repository when an error occurs. (Martin Pool, #180208)

- Better handle short reads when processing multiple range requests. (Vincent Ladeuil, #179368)

- build_tree acceleration uses the correct path when a file has been moved. (Aaron Bentley)

- `commit` now succeeds when a checkout and its master branch share a repository. (Aaron Bentley, #177592)

- Fixed error reporting of unsupported timezone format in `log --timezone`. (Lukáš Lalinský, #178722)

- Fixed Unicode encoding error in `ignored` when the output is redirected to a pipe. (Lukáš Lalinský)

- Fix traceback when sending large response bodies over the smart protocol on Windows. (Andrew Bennetts, #115781)

- Fix `urlutils.relative_url` for the case of two `file:///` URLs pointed to different logical drives on Windows. (Alexander Belchenko, #90847)

- HTTP test servers are now compatible with the HTTP protocol version 1.1. (Vincent Ladeuil, #175524)

- _KnitParentsProvider.get_parent_map now handles requests for ghosts correctly, instead of erroring or attributing incorrect parents to ghosts. (Aaron Bentley)

- `merge --weave --uncommitted` now works. (Aaron Bentley)

- pycurl authentication handling was broken and incomplete. Fix handling of user:pass embedded in the URLs. (Vincent Ladeuil, #177643)

- Files inside non-directories are now handled like other conflict types. (Aaron Bentley, #177390)

- `reconfigure` is able to convert trees into lightweight checkouts. (Aaron Bentley)

- Reduce lockdir timeout to 0 when running `bzr serve`. (Andrew Bennetts, #148087)

- Test that the old `version_info_format` functions still work, even though they are deprecated. (John Arbash Meinel, ShenMaq, #177872)

- Transform failures no longer cause ImmortalLimbo errors (Aaron Bentley, #137681)

- `uncommit` works even when the commit messages of revisions to be removed use characters not supported in the terminal encoding. (Aaron Bentley)

- When dumb HTTP servers return whole files instead of the requested ranges, read the remaining bytes by chunks to avoid overflowing network buffers. (Vincent Ladeuil, #175886)

### Documentation

- Minor tweaks made to the bug tracker integration documentation. (Ian Clatworthy)

- Reference material has now be moved out of the User Guide and added to the User Reference. The User Reference has gained 4 sections as a result: Authenication Settings, Configuration Settings, Conflicts and Hooks. All help topics are now dumped into text format in the doc/en/user-reference directory for those who like browsing that information in their editor. (Ian Clatworthy)

- Using Bazaar with Launchpad tutorial added. (Ian Clatworthy)

### Internals

- find_* methods available for BzrDirs, Branches and WorkingTrees. (Aaron Bentley)

- Help topics can now be loaded from files. (Ian Clatworthy, Alexander Belchenko)

- get_parent_map now always provides tuples as its output. (Aaron Bentley)

- Parent Providers should now implement `get_parent_map` returning a dictionary instead of `get_parents` returning a list. `Graph.get_parents` is now deprecated. (John Arbash Meinel, Robert Collins)

- Patience Diff now supports arbitrary python objects, as long as they support `hash()`. (John Arbash Meinel)

- Reduce selftest overhead to establish test names by memoization. (Vincent Ladeuil)

### API Breaks

### Testing

- Modules can now customise their tests by defining a `load_tests` attribute. `pydoc bzrlib.tests.TestUtil.TestLoader.loadTestsFromModule` for the documentation on this attribute. (Robert Collins)

- New helper function `bzrlib.tests.condition_id_re` which helps filter tests based on a regular expression search on the tests id. (Robert Collins)

- New helper function `bzrlib.tests.condition_isinstance` which helps filter tests based on class. (Robert Collins)

- New helper function `bzrlib.tests.exclude_suite_by_condition` which generalises the `exclude_suite_by_re` function. (Robert Collins)

- New helper function `bzrlib.tests.filter_suite_by_condition` which generalises the `filter_suite_by_re` function. (Robert Collins)

- New helper method `bzrlib.tests.exclude_tests_by_re` which gives a new TestSuite that does not contain tests from the input that matched a regular expression. (Robert Collins)

- New helper method `bzrlib.tests.randomize_suite` which returns a randomized copy of the input suite. (Robert Collins)

- New helper method `bzrlib.tests.split_suite_by_re` which splits a test suite into two according to a regular expression. (Robert Collins)

- Parametrize all HTTP tests for the transport implementations, the HTTP protocol versions (1.0 and 1.1) and the authentication schemes. (Vincent Ladeuil)

- The `exclude_pattern` and `random_order` parameters to the function `bzrlib.tests.filter_suite_by_re` have been deprecated. (Robert Collins)

- The method `bzrlib.tests.sort_suite_by_re` has been deprecated. It is replaced by the new helper methods added in this release. (Robert Collins)