bzr 0.1

Bazaar

bzr 0.1

Released:2005-10-11

Notes

  • ‘bzr branch’ over http initially gives a very high estimate of completion time but it should fall as the first few revisions are pulled in. branch is still slow on high-latency connections.

Bug Fixes

  • bzr-man.py has been updated to work again. Contributed by Rob Weir.
  • Locking is now done with fcntl.lockf which works with NFS file systems. Contributed by Harald Meland.
  • When a merge encounters a file that has been deleted on one side and modified on the other, the old contents are written out to foo.BASE and foo.SIDE, where SIDE is this or OTHER. Contributed by Aaron Bentley.
  • Export was choosing incorrect file paths for the content of the tarball, this has been fixed by Aaron Bentley.
  • Commit will no longer commit without a log message, an error is returned instead. Contributed by Jelmer Vernooij.
  • If you commit a specific file in a sub directory, any of its parent directories that are added but not listed will be automatically included. Suggested by Michael Ellerman.
  • bzr commit and upgrade did not correctly record new revisions for files with only a change to their executable status. bzr will correct this when it encounters it. Fixed by Robert Collins
  • HTTP tests now force off the use of http_proxy for the duration. Contributed by Gustavo Niemeyer.
  • Fix problems in merging weave-based branches that have different partial views of history.
  • Symlink support: working with symlinks when not in the root of a bzr tree was broken, patch from Scott James Remnant.

Improvements

  • ‘branch’ now accepts a –basis parameter which will take advantage of local history when making a new branch. This allows faster branching of remote branches. Contributed by Aaron Bentley.
  • New tree format based on weave files, called version 5. Existing branches can be upgraded to this format using ‘bzr upgrade’.
  • Symlinks are now versionable. Initial patch by Erik Toubro Nielsen, updated to head by Robert Collins.
  • Executable bits are tracked on files. Patch from Gustavo Niemeyer.
  • ‘bzr status’ now shows unknown files inside a selected directory. Patch from Heikki Paajanen.
  • Merge conflicts are recorded in .bzr. Two new commands ‘conflicts’ and ‘resolve’ have needed added, which list and remove those merge conflicts respectively. A conflicted tree cannot be committed in. Contributed by Aaron Bentley.
  • ‘rm’ is now an alias for ‘remove’.
  • Stores now split out their content in a single byte prefixed hash, dropping the density of files per directory by 256. Contributed by Gustavo Niemeyer.
  • ‘bzr diff -r branch:URL’ will now perform a diff between two branches. Contributed by Robert Collins.
  • ‘bzr log’ with the default formatter will show merged revisions, indented to the right. Initial implementation contributed by Gustavo Niemeyer, made incremental by Robert Collins.

Internals

  • Test case failures have the exception printed after the log for your viewing pleasure.
  • InventoryEntry is now an abstract base class, use one of the concrete InventoryDirectory etc classes instead.
  • Branch raises an UnsupportedFormatError when it detects a bzr branch it cannot understand. This allows for precise handling of such circumstances.
  • Remove RevisionReference class; Revision.parent_ids is now simply a list of their ids and parent_sha1s is a list of their corresponding sha1s (for old branches only at the moment.)
  • New method-object style interface for Commit() and Fetch().
  • Renamed Branch.last_patch() to Branch.last_revision(), since we call them revisions not patches.
  • Move copy_branch to bzrlib.clone.copy_branch. The destination directory is created if it doesn’t exist.
  • Inventories now identify the files which were present by giving the revision of that file.
  • Inventory and Revision XML contains a version identifier. This must be consistent with the overall branch version but allows for more flexibility in future upgrades.

Testing

  • Removed testsweet module so that tests can be run after bzr installed by ‘bzr selftest’.
  • ‘bzr selftest’ command-line arguments can now be partial ids of tests to run, e.g. bzr selftest test_weave