Rev 6061: Merge 2.4 into trunk in http://bazaar.launchpad.net/~vila/bzr/integration/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Fri Aug 12 09:49:25 UTC 2011
At http://bazaar.launchpad.net/~vila/bzr/integration/
------------------------------------------------------------
revno: 6061 [merge]
revision-id: v.ladeuil+lp at free.fr-20110812094924-knc5s0g7vs31a2f1
parent: pqm at pqm.ubuntu.com-20110809170446-f1wc1a8fhgnxi4cn
parent: pqm at pqm.ubuntu.com-20110811152213-htaahpauzcf5vcnr
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: trunk
timestamp: Fri 2011-08-12 11:49:24 +0200
message:
Merge 2.4 into trunk
modified:
bzrlib/branch.py branch.py-20050309040759-e4baf4e0d046576e
bzrlib/config.py config.py-20051011043216-070c74f4e9e338e8
bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
bzrlib/plugins/launchpad/test_lp_api_lite.py test_lp_api_lite.py-20110713114529-lurqfgc09yifvs3u-1
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
bzrlib/tests/per_branch/test_pull.py test_pull.py-20060410103942-83c35b26657414fc
bzrlib/tests/per_controldir/test_controldir.py test_bzrdir.py-20060131065642-0ebeca5e30e30866
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_remote.py test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
doc/en/release-notes/bzr-2.4.txt bzr2.4.txt-20110114053217-k7ym9jfz243fddjm-1
doc/en/whats-new/whats-new-in-2.4.txt whatsnewin2.4.txt-20110114044330-nipk1og7j729fy89-1
-------------- next part --------------
=== modified file 'bzrlib/branch.py'
--- a/bzrlib/branch.py 2011-08-04 13:30:30 +0000
+++ b/bzrlib/branch.py 2011-08-12 09:49:24 +0000
@@ -1540,10 +1540,15 @@
# For bzr native formats must_fetch is just the tip, and if_present_fetch
# are the tags.
must_fetch = set([self.last_revision()])
- try:
- if_present_fetch = set(self.tags.get_reverse_tag_dict())
- except errors.TagsNotSupported:
- if_present_fetch = set()
+ if_present_fetch = set()
+ c = self.get_config()
+ include_tags = c.get_user_option_as_bool('branch.fetch_tags',
+ default=False)
+ if include_tags:
+ try:
+ if_present_fetch = set(self.tags.get_reverse_tag_dict())
+ except errors.TagsNotSupported:
+ pass
must_fetch.discard(_mod_revision.NULL_REVISION)
if_present_fetch.discard(_mod_revision.NULL_REVISION)
return must_fetch, if_present_fetch
=== modified file 'bzrlib/config.py'
--- a/bzrlib/config.py 2011-08-09 17:04:46 +0000
+++ b/bzrlib/config.py 2011-08-12 09:49:24 +0000
@@ -172,9 +172,7 @@
# FIXME: Until we can guarantee that each config file is loaded once and
# only once for a given bzrlib session, we don't want to re-read the file every
# time we query for an option so we cache the value (bad ! watch out for tests
-# needing to restore the proper value).This shouldn't be part of 2.4.0 final,
-# yell at mgz^W vila and the RM if this is still present at that time
-# -- vila 20110219
+# needing to restore the proper value). -- vila 20110219
_expand_default_value = None
def _get_expand_default_value():
global _expand_default_value
=== modified file 'bzrlib/plugins/launchpad/__init__.py'
--- a/bzrlib/plugins/launchpad/__init__.py 2011-08-02 01:10:27 +0000
+++ b/bzrlib/plugins/launchpad/__init__.py 2011-08-12 09:49:24 +0000
@@ -479,9 +479,11 @@
:return: If this isn't a packaging branch, return None. If it is, return
(archive, series, project)
"""
+ if url is None:
+ return None
m = _package_branch.search(url)
if m is None:
- return
+ return None
archive, series, project, user = m.group('archive', 'series',
'project', 'user')
if series is not None:
=== modified file 'bzrlib/plugins/launchpad/test_lp_api_lite.py'
--- a/bzrlib/plugins/launchpad/test_lp_api_lite.py 2011-08-02 01:10:27 +0000
+++ b/bzrlib/plugins/launchpad/test_lp_api_lite.py 2011-08-12 09:49:24 +0000
@@ -330,6 +330,9 @@
self.assertNotPackageBranch(
'http://bazaar.launchpad.net/+branch'
'/~user/ubuntu/natty/foo/natty')
+ # Older versions of bzr-svn/hg/git did not set Branch.base until after
+ # they called Branch.__init__().
+ self.assertNotPackageBranch(None)
def test__get_package_branch_info(self):
self.assertBranchInfo(
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py 2011-08-05 21:26:39 +0000
+++ b/bzrlib/tests/__init__.py 2011-08-12 09:49:24 +0000
@@ -384,9 +384,18 @@
getDetails = getattr(test, "getDetails", None)
if getDetails is not None:
getDetails().clear()
+ # Clear _type_equality_funcs to try to stop TestCase instances
+ # from wasting memory. 'clear' is not available in all Python
+ # versions (bug 809048)
type_equality_funcs = getattr(test, "_type_equality_funcs", None)
if type_equality_funcs is not None:
- type_equality_funcs.clear()
+ tef_clear = getattr(type_equality_funcs, "clear", None)
+ if tef_clear is None:
+ tef_instance_dict = getattr(type_equality_funcs, "__dict__", None)
+ if tef_instance_dict is not None:
+ tef_clear = tef_instance_dict.clear
+ if tef_clear is not None:
+ tef_clear()
self._traceback_from_test = None
def startTests(self):
=== modified file 'bzrlib/tests/blackbox/test_branch.py'
--- a/bzrlib/tests/blackbox/test_branch.py 2011-06-14 01:26:41 +0000
+++ b/bzrlib/tests/blackbox/test_branch.py 2011-08-12 09:49:24 +0000
@@ -289,6 +289,7 @@
builder = self.make_branch_builder('source')
source = fixtures.build_branch_with_non_ancestral_rev(builder)
source.tags.set_tag('tag-a', 'rev-2')
+ source.get_config().set_user_option('branch.fetch_tags', 'True')
# Now source has a tag not in its ancestry. Make a branch from it.
self.run_bzr('branch source new-branch')
new_branch = branch.Branch.open('new-branch')
@@ -440,7 +441,7 @@
# being too low. If rpc_count increases, more network roundtrips have
# become necessary for this use case. Please do not adjust this number
# upwards without agreement from bzr's network support maintainers.
- self.assertLength(36, self.hpss_calls)
+ self.assertLength(37, self.hpss_calls)
def test_branch_from_trivial_branch_streaming_acceptance(self):
self.setup_smart_server_with_call_log()
@@ -455,7 +456,7 @@
# being too low. If rpc_count increases, more network roundtrips have
# become necessary for this use case. Please do not adjust this number
# upwards without agreement from bzr's network support maintainers.
- self.assertLength(9, self.hpss_calls)
+ self.assertLength(10, self.hpss_calls)
def test_branch_from_trivial_stacked_branch_streaming_acceptance(self):
self.setup_smart_server_with_call_log()
@@ -475,12 +476,13 @@
# being too low. If rpc_count increases, more network roundtrips have
# become necessary for this use case. Please do not adjust this number
# upwards without agreement from bzr's network support maintainers.
- self.assertLength(14, self.hpss_calls)
+ self.assertLength(15, self.hpss_calls)
def test_branch_from_branch_with_tags(self):
self.setup_smart_server_with_call_log()
builder = self.make_branch_builder('source')
source = fixtures.build_branch_with_non_ancestral_rev(builder)
+ source.get_config().set_user_option('branch.fetch_tags', 'True')
source.tags.set_tag('tag-a', 'rev-2')
source.tags.set_tag('tag-missing', 'missing-rev')
# Now source has a tag not in its ancestry. Make a branch from it.
@@ -491,7 +493,7 @@
# being too low. If rpc_count increases, more network roundtrips have
# become necessary for this use case. Please do not adjust this number
# upwards without agreement from bzr's network support maintainers.
- self.assertLength(9, self.hpss_calls)
+ self.assertLength(10, self.hpss_calls)
def test_branch_to_stacked_from_trivial_branch_streaming_acceptance(self):
self.setup_smart_server_with_call_log()
=== modified file 'bzrlib/tests/blackbox/test_merge.py'
--- a/bzrlib/tests/blackbox/test_merge.py 2011-06-13 14:32:13 +0000
+++ b/bzrlib/tests/blackbox/test_merge.py 2011-08-09 13:30:21 +0000
@@ -681,6 +681,7 @@
builder.build_commit(message="Rev 2a", rev_id='rev-2a')
source.tags.set_tag('tag-a', 'rev-2a')
source.set_last_revision_info(1, 'rev-1')
+ source.get_config().set_user_option('branch.fetch_tags', 'True')
builder.build_commit(message="Rev 2b", rev_id='rev-2b')
# Merge from source
self.run_bzr('merge -d target source')
=== modified file 'bzrlib/tests/blackbox/test_pull.py'
--- a/bzrlib/tests/blackbox/test_pull.py 2011-02-11 05:57:31 +0000
+++ b/bzrlib/tests/blackbox/test_pull.py 2011-08-10 14:02:04 +0000
@@ -152,6 +152,7 @@
# Make a source, sprout a target off it
builder = self.make_branch_builder('source')
source = fixtures.build_branch_with_non_ancestral_rev(builder)
+ source.get_config().set_user_option('branch.fetch_tags', 'True')
target_bzrdir = source.bzrdir.sprout('target')
source.tags.set_tag('tag-a', 'rev-2')
# Pull from source
@@ -410,7 +411,7 @@
# being too low. If rpc_count increases, more network roundtrips have
# become necessary for this use case. Please do not adjust this number
# upwards without agreement from bzr's network support maintainers.
- self.assertLength(18, self.hpss_calls)
+ self.assertLength(19, self.hpss_calls)
remote = Branch.open('stacked')
self.assertEndsWith(remote.get_stacked_on_url(), '/parent')
=== modified file 'bzrlib/tests/per_branch/test_pull.py'
--- a/bzrlib/tests/per_branch/test_pull.py 2011-02-09 06:36:35 +0000
+++ b/bzrlib/tests/per_branch/test_pull.py 2011-08-09 14:18:05 +0000
@@ -156,6 +156,7 @@
except errors.TagsNotSupported:
raise TestNotApplicable('format does not support tags.')
source.tags.set_tag('tag-a', 'rev-2')
+ source.get_config().set_user_option('branch.fetch_tags', 'True')
target.pull(source)
# The tag is present, and so is its revision.
self.assertEqual('rev-2', target.tags.lookup_tag('tag-a'))
@@ -177,6 +178,7 @@
source.tags.set_tag('tag-a', 'rev-2')
except errors.TagsNotSupported:
raise TestNotApplicable('format does not support tags.')
+ source.get_config().set_user_option('branch.fetch_tags', 'True')
target.pull(source, 'rev-2-again')
# The tag is present, and so is its revision.
self.assertEqual('rev-2', target.tags.lookup_tag('tag-a'))
=== modified file 'bzrlib/tests/per_controldir/test_controldir.py'
--- a/bzrlib/tests/per_controldir/test_controldir.py 2011-05-13 12:51:05 +0000
+++ b/bzrlib/tests/per_controldir/test_controldir.py 2011-08-10 14:02:04 +0000
@@ -690,6 +690,7 @@
source.tags.set_tag('tag-a', 'rev-2')
except errors.TagsNotSupported:
raise TestNotApplicable('Branch format does not support tags.')
+ source.get_config().set_user_option('branch.fetch_tags', 'True')
# Now source has a tag not in its ancestry. Sprout its controldir.
dir = source.bzrdir
target = dir.sprout(self.get_url('target'))
@@ -761,6 +762,7 @@
source.tags.set_tag('tag-absent', 'absent-rev')
except errors.TagsNotSupported:
raise TestNotApplicable('Branch format does not support tags.')
+ source.get_config().set_user_option('branch.fetch_tags', 'True')
# And ask sprout for C2
dir = source.bzrdir
target = dir.sprout(self.get_url('target'), revision_id='rev-c2')
=== modified file 'bzrlib/tests/test_bzrdir.py'
--- a/bzrlib/tests/test_bzrdir.py 2011-05-13 12:51:05 +0000
+++ b/bzrlib/tests/test_bzrdir.py 2011-08-10 14:02:04 +0000
@@ -26,6 +26,7 @@
from bzrlib import (
branch,
bzrdir,
+ config,
controldir,
errors,
help_topics,
@@ -1208,7 +1209,7 @@
def __init__(self, *args, **kwargs):
super(_TestBzrDir, self).__init__(*args, **kwargs)
- self.test_branch = _TestBranch()
+ self.test_branch = _TestBranch(self.transport)
self.test_branch.repository = self.create_repository()
def open_branch(self, unsupported=False):
@@ -1225,15 +1226,17 @@
class _TestBranch(bzrlib.branch.Branch):
"""Test Branch implementation for TestBzrDirSprout."""
- def __init__(self, *args, **kwargs):
+ def __init__(self, transport, *args, **kwargs):
self._format = _TestBranchFormat()
+ self._transport = transport
+ self.base = transport.base
super(_TestBranch, self).__init__(*args, **kwargs)
self.calls = []
self._parent = None
def sprout(self, *args, **kwargs):
self.calls.append('sprout')
- return _TestBranch()
+ return _TestBranch(self._transport)
def copy_content_into(self, destination, revision_id=None):
self.calls.append('copy_content_into')
@@ -1244,6 +1247,9 @@
def get_parent(self):
return self._parent
+ def _get_config(self):
+ return config.TransportConfig(self._transport, 'branch.conf')
+
def set_parent(self, parent):
self._parent = parent
=== modified file 'bzrlib/tests/test_remote.py'
--- a/bzrlib/tests/test_remote.py 2011-07-15 14:13:21 +0000
+++ b/bzrlib/tests/test_remote.py 2011-08-12 09:49:24 +0000
@@ -1183,6 +1183,28 @@
client.add_expected_call(
'Branch.last_revision_info', ('quack/',),
'success', ('ok', '1', 'rev-tip'))
+ client.add_expected_call(
+ 'Branch.get_config_file', ('quack/',),
+ 'success', ('ok',), '')
+ transport.mkdir('quack')
+ transport = transport.clone('quack')
+ branch = self.make_remote_branch(transport, client)
+ result = branch.heads_to_fetch()
+ self.assertFinished(client)
+ self.assertEqual((set(['rev-tip']), set()), result)
+
+ def test_uses_last_revision_info_and_tags_when_set(self):
+ transport = MemoryTransport()
+ client = FakeClient(transport.base)
+ client.add_expected_call(
+ 'Branch.get_stacked_on_url', ('quack/',),
+ 'error', ('NotStacked',))
+ client.add_expected_call(
+ 'Branch.last_revision_info', ('quack/',),
+ 'success', ('ok', '1', 'rev-tip'))
+ client.add_expected_call(
+ 'Branch.get_config_file', ('quack/',),
+ 'success', ('ok',), 'branch.fetch_tags = True')
# XXX: this will break if the default format's serialization of tags
# changes, or if the RPC for fetching tags changes from get_tags_bytes.
client.add_expected_call(
@@ -1213,7 +1235,7 @@
self.assertFinished(client)
self.assertEqual((set(['tip']), set(['tagged-1', 'tagged-2'])), result)
- def test_backwards_compatible(self):
+ def make_branch_with_tags(self):
self.setup_smart_server_with_call_log()
# Make a branch with a single revision.
builder = self.make_branch_builder('foo')
@@ -1225,6 +1247,12 @@
# Add two tags to that branch
branch.tags.set_tag('tag-1', 'rev-1')
branch.tags.set_tag('tag-2', 'rev-2')
+ return branch
+
+ def test_backwards_compatible(self):
+ branch = self.make_branch_with_tags()
+ c = branch.get_config()
+ c.set_user_option('branch.fetch_tags', 'True')
self.addCleanup(branch.lock_read().unlock)
# Disable the heads_to_fetch verb
verb = 'Branch.heads_to_fetch'
@@ -1233,7 +1261,23 @@
result = branch.heads_to_fetch()
self.assertEqual((set(['tip']), set(['rev-1', 'rev-2'])), result)
self.assertEqual(
- ['Branch.last_revision_info', 'Branch.get_tags_bytes'],
+ ['Branch.last_revision_info', 'Branch.get_config_file',
+ 'Branch.get_tags_bytes'],
+ [call.call.method for call in self.hpss_calls])
+
+ def test_backwards_compatible_no_tags(self):
+ branch = self.make_branch_with_tags()
+ c = branch.get_config()
+ c.set_user_option('branch.fetch_tags', 'False')
+ self.addCleanup(branch.lock_read().unlock)
+ # Disable the heads_to_fetch verb
+ verb = 'Branch.heads_to_fetch'
+ self.disable_verb(verb)
+ self.reset_smart_call_log()
+ result = branch.heads_to_fetch()
+ self.assertEqual((set(['tip']), set()), result)
+ self.assertEqual(
+ ['Branch.last_revision_info', 'Branch.get_config_file'],
[call.call.method for call in self.hpss_calls])
=== modified file 'doc/en/release-notes/bzr-2.4.txt'
--- a/doc/en/release-notes/bzr-2.4.txt 2011-08-02 01:10:27 +0000
+++ b/doc/en/release-notes/bzr-2.4.txt 2011-08-12 09:49:24 +0000
@@ -5,10 +5,78 @@
.. toctree::
:maxdepth: 1
+bzr 2.4.1
+#########
+
+:2.4.1: NOT RELEASED YET
+
+External Compatibility Breaks
+*****************************
+
+.. These may require users to change the way they use Bazaar.
+
+New Features
+************
+
+.. New commands, options, etc that users may wish to try out.
+
+Improvements
+************
+
+.. Improvements to existing commands, especially improved performance
+ or memory usage, or better results.
+
+Bug Fixes
+*********
+
+.. Fixes for situations where bzr would previously crash or give incorrect
+ or undesirable results.
+
+Documentation
+*************
+
+.. Improved or updated documentation.
+
+API Changes
+***********
+
+.. Changes that may require updates in plugins or other code that uses
+ bzrlib.
+
+Internals
+*********
+
+.. Major internal changes, unlikely to be visible to users or plugin
+ developers, but interesting for bzr developers.
+
+Testing
+*******
+
+.. Fixes and changes that are only relevant to bzr's test framework and
+ suite. This can include new facilities for writing tests, fixes to
+ spurious test failures and changes to the way things should be tested.
+
+
bzr 2.4.0
#########
-:2.4.0: NOT RELEASED YET
+:2.4.0: 2011-08-11
+
+This release marks the start of a new long-term-stable series. From here, we
+will only make bugfix releases on the 2.4 series (2.4.1, etc, and support it
+until February 2013), while 2.5 will become our new development series.
+
+This is a bugfix and polish release over the 2.3 series, with a large number
+of bugs fixed (>150 for the 2.4 series alone), and some performance
+improvements. Support for python 2.4 and 2.5 has been dropped, many large
+working tree operations have been optimized as well as some stacked branches
+operations.
+
+Only bugfixes from other stables series have been included since 2.4b5 so
+all known fixed bugs are included here.
+
+Users are encouraged to upgrade from the other stable series.
+
External Compatibility Breaks
*****************************
@@ -32,6 +100,11 @@
.. Fixes for situations where bzr would previously crash or give incorrect
or undesirable results.
+* A call to CHKInventory's filter-method will not result in a
+ DuplicateFileId error, if you move a subfolder and change a file in
+ that subfolder.
+ (Bastian Bowe, #809901)
+
* Accessing a packaging branch on Launchpad (eg, ``lp:ubuntu/bzr``) now
checks to see if the most recent published source package version for
that project is present in the branch tags. This should help developers
@@ -56,6 +129,14 @@
(John Arbash Meinel, #609187, #812928)
+* Cope with not all Python versions having a ``clear`` method on
+ ``TestCase._type_equality_funcs``.
+ (Martin [gz], Jelmer Vernooij, #809048)
+
+* Fetching tags when fetching the tip revision of a branch is now
+ controlled by the config setting ``branch.fetch_tags``. The behavior has
+ been reverted to 2.3's not-fetching tagged revisions by default.
+ (John Arbash Meinel, #771184)
* The fix for bug #513709 caused us to open a new connection when
switching a lightweight checkout that was pointing at a bound branch.
@@ -63,6 +144,7 @@
avoiding an extra SSH connection, etc.
(John Arbash Meinel, #812285)
+
Documentation
*************
@@ -107,7 +189,7 @@
:2.4b5: 2011-07-07
This is the fifth (and last) beta of the 2.4 series leading to
-2.4.0 release in Auguest 2011. Beta releases are suitable for
+2.4.0 release in August 2011. Beta releases are suitable for
everyday use but may cause some incompatibilities with plugins.
This release includes all bug fixed in previous series known at
@@ -292,7 +374,7 @@
* Reports the original error when an InvalidHttpResponse exception is
encountered to facilitate debug. (Vincent Ladeuil, #788530)
-* Reports a non-existant file error when trying to merge in a file
+* Reports a non-existent file error when trying to merge in a file
that does not exist. (Jonathan Riddell, #330063)
* ``UIFactory.prompt``, ``UIFactory.get_username``,
@@ -374,7 +456,7 @@
(Vincent Ladeuil, #787942)
* Re-target ``bb.test_merge.TestMerge.test_merge_reversed_revision_range``
- and rewrite it as a parameterized test to avoid unrelated failures.
+ and rewrite it as a parametrized test to avoid unrelated failures.
(Vincent Ladeuil, #795456)
* Show log file contents from subprocesses started by
@@ -382,7 +464,7 @@
strange hangs and failures involving subprocesses. (Andrew Bennetts)
* Skip ``utextwrap`` tests when ``sphinx`` breaks text_wrap by an hostile
- monkeypatch to textwrap.TextWrapper.wordsep_re.
+ monkey-patch to textwrap.TextWrapper.wordsep_re.
(Vincent Ladeuil, #785098)
* Multiple ``selftest --exclude`` options are now combined instead of
@@ -1071,7 +1153,7 @@
by catching them so they can be re-raised in the controlling thread. It's
available in the ``bzrlib.cethread`` module. (Vincent Ladeuil)
-* Correctly propogate malloc failures from diff-delta.c code as MemoryError
+* Correctly propagate malloc failures from diff-delta.c code as MemoryError
so OOM conditions during groupcompress are clearly reported. This entailed a
change to several function signatures. (Martin [gz], #633336)
=== modified file 'doc/en/whats-new/whats-new-in-2.4.txt'
--- a/doc/en/whats-new/whats-new-in-2.4.txt 2011-07-18 15:09:20 +0000
+++ b/doc/en/whats-new/whats-new-in-2.4.txt 2011-08-12 09:49:24 +0000
@@ -1,8 +1,12 @@
-***********************************
-What's New in Bazaar 2.4 (Oronsay)?
-***********************************
-
-Bazaar 2.4 is still under development, and will be released in August 2011.
+**********************************
+What's New in Bazaar 2.4 (Oronsay)
+**********************************
+
+Bazaar 2.4 has been released on the 8th of August 2011 and marks the start
+of a new long-term-stable series. From here, we will only make bugfix
+releases on the 2.4 series (2.4.1, etc, and support it until February 2013),
+while 2.5 will become our new development series.
+
This document accumulates a high level summary of what's changed. See the
:doc:`../release-notes/index` for a full list.
@@ -38,10 +42,11 @@
***************************
When tags are copied from a branch, the associated revisions are now copied
-too. Previously operations like branching, merging or pulling might have
-copied new tags visible in ``bzr tags``, but not copied the revisions. Now
-revisions from tags will always be present, so that operations like ``bzr
-log -r tag:foo`` will always work.
+too if the config entry ``branch.fetch_tags`` is set to True. Operations
+like branching, merging or pulling will still always copy new tags visible
+in ``bzr tags``. When the config is set, it will now also copy the
+revisions and their ancestry. This way tagged revisions will always be
+present, so that operations like ``bzr log -r tag:foo`` will always work.
Deprecated command synonyms
***************************
@@ -58,10 +63,10 @@
Configuration files
*******************
-Option values can now refer to other options in the same configuration file by
-enclosing them in curly brackets (``{option}``). This is an opt-in feature
-during the beta period controlled by the ``bzr.config.expand`` option that
-should be declared in ``bazaar.conf`` and no other file.
+Option values can now refer to other options in the same configuration file
+by enclosing them in curly brackets (``{option}``). This is an opt-in
+feature controlled by the ``bzr.config.expand`` option that should be
+declared in ``bazaar.conf`` and no other file.
Changelog merge plugin
**********************
@@ -118,7 +123,7 @@
The ``selftest --exclude`` option can now be specified multiple times and
the tests that match any of the specified patterns will be excluded. Only
-the last specified patetrn was previously taken into account.
+the last specified pattern was previously taken into account.
Digital Signature Verification
******************************
More information about the bazaar-commits
mailing list