bzr 0.17rc1

Bazaar

bzr 0.17rc1

Released:2007-06-12

Notes When Upgrading

  • The kind() and is_executable() APIs on the WorkingTree interface no longer implicitly (read) locks and unlocks the tree. This might impact some plug-ins and tools using this part of the API. If you find an issue that may be caused by this change, please let us know, particularly the plug-in/tool maintainer. If encountered, the API fix is to surround kind() and is_executable() calls with lock_read() and unlock() like so:

    work_tree.lock_read()
    try:
        kind = work_tree.kind(...)
    finally:
        work_tree.unlock()
    

Internals

  • Rework of LogFormatter API to provide beginning/end of log hooks and to encapsulate the details of the revision to be logged in a LogRevision object. In long log formats, merge revision ids are only shown when –show-ids is specified, and are labelled “revision-id:”, as per mainline revisions, instead of “merged:”. (Kent Gibson)
  • New BranchBuilder API which allows the construction of particular histories quickly. Useful for testing and potentially other applications too. (Robert Collins)

Improvements

  • There are two new help topics, working-trees and repositories that attempt to explain these concepts. (James Westby, John Arbash Meinel, Aaron Bentley)
  • Added bzr log --limit to report a limited number of revisions. (Kent Gibson, #3659)
  • Revert does not try to preserve file contents that were originally produced by reverting to a historical revision. (Aaron Bentley)
  • bzr log --short now includes [merge] for revisions which have more than one parent. This is a small improvement to help understanding what changes have occurred (John Arbash Meinel, #83887)
  • TreeTransform avoids many renames when contructing large trees, improving speed. 3.25x speedups have been observed for construction of kernel-sized-trees, and checkouts are 1.28x faster. (Aaron Bentley)
  • Commit on large trees is now faster. In my environment, a commit of a small change to the Mozilla tree (55k files) has dropped from 66 seconds to 32 seconds. For a small tree of 600 files, commit of a small change is 33% faster. (Ian Clatworthy)
  • New –create-prefix option to bzr init, like for push. (Daniel Watkins, #56322)

Bugfixes

  • bzr push should only connect to the remote location one time. We have been connecting 3 times because we forget to pass around the Transport object. This adds BzrDir.clone_on_transport(), so that we can pass in the Transport that we already have. (John Arbash Meinel, #75721)
  • DirState.set_state_from_inventory() needs to properly order based on split paths, not just string paths. (John Arbash Meinel, #115947)
  • Let TestUIFactoy encode the password prompt with its own stdout. (Vincent Ladeuil, #110204)
  • pycurl should take use the range header that takes the range hint into account. (Vincent Ladeuil, #112719)
  • WorkingTree4.get_file_sha1 no longer raises an exception when invoked on a missing file. (Aaron Bentley, #118186)
  • WorkingTree.remove works correctly with tree references, and when pwd is not the tree root. (Aaron Bentley)
  • Merge no longer fails when a file is renamed in one tree and deleted in the other. (Aaron Bentley, #110279)
  • revision-info now accepts dotted revnos, doesn’t require a tree, and defaults to the last revision (Matthew Fuller, #90048)
  • Tests no longer fail when BZR_REMOTE_PATH is set in the environment. (Daniel Watkins, #111958)
  • bzr branch -r revid:foo can be used to branch any revision in your repository. (Previously Branch6 only supported revisions in your mainline). (John Arbash Meinel, #115343)