[MERGE] bzrlib API to add revision properties to a working tree

James Henstridge james at jamesh.id.au
Thu Sep 7 16:55:59 BST 2006


Attached is a bundle of my working tree revision properties branch.

I've fixed the revision property name issues to ensure that they are
ASCII compatible in addition to the current restriction on them not
containing whitespace.  The sanity check on property names is also
performed in WorkingTree.set_revision_properties(), to catch errors
like this early.

I've added tests for non-ASCII revision property names and values
(that the first raise exceptions and the second are preserved).

I also added a TODO item for registering callbacks to be called during
commit(), as requested by John.

James.
-------------- next part --------------
# Bazaar revision bundle v0.8
#
# message:
#   add a TODO item about commit callbacks
# committer: James Henstridge <james at jamesh.id.au>
# date: Thu 2006-09-07 23:26:26.029000044 +0800

=== added file bzrlib/tests/workingtree_implementations/test_revprops.py // fil
... e-id:test_pending_revprop-20060901093045-dr37c3gayae7z8d7-1 // last-changed
... :james at jamesh.id.au-20060907091919-920789006b0557a5
--- /dev/null
+++ bzrlib/tests/workingtree_implementations/test_revprops.py
@@ -0,0 +1,80 @@
+# (C) 2006 Canonical Ltd
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+"""Tests for interface conformance of working tree revision property methods"""
+
+from cStringIO import StringIO
+
+from bzrlib.errors import RevisionPropertiesFormatError
+from bzrlib.tests.workingtree_implementations import TestCaseWithWorkingTree
+
+
+class TestRevisionProperties(TestCaseWithWorkingTree):
+
+    def test_get_revision_properties(self):
+        t = self.make_branch_and_tree('.')
+        self.assertEqual({}, t.get_revision_properties())
+        t.set_revision_properties({'key1': u'value1'})
+        self.assertEqual({'key1': u'value1'}, t.get_revision_properties())
+        t.add_revision_property('key2', 'value2')
+        self.assertEqual({'key1': u'value1',
+                          'key2': u'value2'}, t.get_revision_properties())
+        t.add_revision_property('name', u'Erik B\xe5gfors')
+        self.assertEqual(u'Erik B\xe5gfors',
+                         t.get_revision_properties()['name'])
+        self.assertRaises(ValueError,
+                          t.add_revision_property,
+                          'n\xC3\xA2me', 'value')
+
+    def test_invalid_revision_properties_file(self):
+        t = self.make_branch_and_tree('.')
+        t._control_files.put('revision-properties', StringIO('invalid data'))
+        self.assertRaises(RevisionPropertiesFormatError,
+                          t.get_revision_properties)
+
+    def test_commit_revision_properties(self):
+        t = self.make_branch_and_tree('.')
+        b = t.branch
+        # no working tree revprops after commit
+        t.add_revision_property('key1', 'value1')
+        rev1_id = t.commit('foo', allow_pointless=True)
+        self.assertEqual({}, t.get_revision_properties())
+        rev1 = b.repository.get_revision(rev1_id)
+        self.failUnless(u'key1' in rev1.properties)
+        self.assertEqual(u'value1', rev1.properties['key1'])
+
+        # value from commit() takes precedence over working tree value
+        t.add_revision_property('key1', 'value1')
+        t.add_revision_property('key2', 'tree value')
+        rev2_id = t.commit('foo', revprops={'key2': 'commit value'},
+                           allow_pointless=True)
+        rev2 = b.repository.get_revision(rev2_id)
+        self.assertEqual(u'value1', rev2.properties['key1'])
+        self.assertEqual(u'commit value', rev2.properties['key2'])
+
+    def test_revert_revision_properties(self):
+        t = self.make_branch_and_tree('.')
+        # doing a full revert removes revprops
+        t.add_revision_property('key1', 'value1')
+        t.revert([])
+        self.assertEqual({}, t.get_revision_properties())
+
+        # reverting a list of files leaves revprops
+        t.add_revision_property('key1', 'value1')
+        file('hello.txt', 'w').write('file contents')
+        t.add(['hello.txt'])
+        t.revert(['hello.txt'])
+        self.assertEqual({'key1': u'value1'}, t.get_revision_properties())

=== modified file TODO
--- TODO
+++ TODO
@@ -371,6 +371,10 @@
   This has been implemented, but it does not remove the texts from
   the store.
 
+* Provide a way to register callbacks to be run at commit time.  The
+  callback should be able to prevent the commit from completing, and
+  set revision properties.
+
 
 Large things
 ------------

=== modified file bzrlib/commit.py // last-changed:james.henstridge at canonical.c
... om-20060902103147-37589f2899f169be
--- bzrlib/commit.py
+++ bzrlib/commit.py
@@ -319,6 +319,9 @@
             # and now do the commit locally.
             self.branch.append_revision(self.rev_id)
 
+            # reset the working tree revision properties.
+            self.work_tree.set_revision_properties({})
+
             # if the builder gave us the revisiontree it created back, we
             # could use it straight away here.
             # TODO: implement this.

=== modified file bzrlib/errors.py // last-changed:james at jamesh.id.au-200609070
... 92448-67111a2cdba7cfe6
--- bzrlib/errors.py
+++ bzrlib/errors.py
@@ -1028,6 +1028,10 @@
     """Format error in conflict listings"""
 
 
+class RevisionPropertiesFormatError(BzrNewError):
+    """Format error in revision property listing"""
+
+
 class CorruptRepository(BzrNewError):
     """An error has been detected in the repository %(repo_path)s.
 Please run bzr reconcile on this repository."""

=== modified file bzrlib/revision.py // last-changed:james at jamesh.id.au-2006090
... 7091919-920789006b0557a5
--- bzrlib/revision.py
+++ bzrlib/revision.py
@@ -50,7 +50,7 @@
     def __init__(self, revision_id, properties=None, **args):
         self.revision_id = revision_id
         self.properties = properties or {}
-        self._check_properties()
+        check_properties(self.properties)
         self.parent_ids = []
         self.parent_sha1s = []
         """Not used anymore - legacy from for 4."""
@@ -75,15 +75,6 @@
     def __ne__(self, other):
         return not self.__eq__(other)
 
-    def _check_properties(self):
-        """Verify that all revision properties are OK."""
-        for name, value in self.properties.iteritems():
-            if not isinstance(name, basestring) or contains_whitespace(name):
-                raise ValueError("invalid property name %r" % name)
-            if not isinstance(value, basestring):
-                raise ValueError("invalid property value %r for %r" % 
-                                 (name, value))
-
     def get_history(self, repository):
         """Return the canonical line-of-history for this revision.
 
@@ -109,6 +100,20 @@
         return self.message.split('\n', 1)[0]
 
 
+def check_properties(properties):
+    """Verify that a dictionary of revision properties are OK."""
+    for name, value in properties.iteritems():
+        if not isinstance(name, basestring) or contains_whitespace(name):
+            raise ValueError("invalid property name %r" % name)
+        try:
+            name.encode('ASCII')
+        except UnicodeError:
+            raise ValueError("property name %r is not representable "
+                             "in ASCII" % name)
+        if not isinstance(value, basestring):
+            raise ValueError("invalid property value %r for %r" % 
+                             (name, value))
+
 def is_ancestor(revision_id, candidate_id, branch):
     """Return true if candidate_id is an ancestor of revision_id.
 

=== modified file bzrlib/tests/repository_implementations/test_revision.py // l
... ast-changed:james at jamesh.id.au-20060907091919-920789006b0557a5
--- bzrlib/tests/repository_implementations/test_revision.py
+++ bzrlib/tests/repository_implementations/test_revision.py
@@ -57,6 +57,11 @@
                           wt.commit, 
                           message='invalid',
                           revprops=dict(number=13))
+        # non-ASCII property names are not allowed
+        self.assertRaises(ValueError,
+                          wt.commit,
+                          message='invalid',
+                          revprops={'n\xC3\xA2me': 'value'})
 
 
 class TestRevisionAttributes(TestCaseWithRepository):

=== modified file bzrlib/tests/workingtree_implementations/__init__.py // last-
... changed:james at jamesh.id.au-20060907092448-67111a2cdba7cfe6
--- bzrlib/tests/workingtree_implementations/__init__.py
+++ bzrlib/tests/workingtree_implementations/__init__.py
@@ -62,6 +62,7 @@
         'bzrlib.tests.workingtree_implementations.test_locking',
         'bzrlib.tests.workingtree_implementations.test_merge_from_branch',
         'bzrlib.tests.workingtree_implementations.test_parents',
+        'bzrlib.tests.workingtree_implementations.test_revprops',
         'bzrlib.tests.workingtree_implementations.test_pull',
         'bzrlib.tests.workingtree_implementations.test_workingtree',
         ]

=== modified file bzrlib/workingtree.py
--- bzrlib/workingtree.py
+++ bzrlib/workingtree.py
@@ -31,6 +31,7 @@
 
 MERGE_MODIFIED_HEADER_1 = "BZR merge-modified list format 1"
 CONFLICT_HEADER_1 = "BZR conflict list format 1"
+REVISION_PROPERTIES_HEADER_1 = "BZR revision properties list format 1"
 
 # TODO: Give the workingtree sole responsibility for the working inventory;
 # remove the variable and references to it from the branch.  This may require
@@ -65,6 +66,7 @@
                            NoSuchFile,
                            NotVersionedError,
                            MergeModifiedFormatError,
+                           RevisionPropertiesFormatError,
                            UnsupportedOperation,
                            )
 from bzrlib.inventory import InventoryEntry, Inventory
@@ -89,7 +91,7 @@
                             supports_executable,
                             )
 from bzrlib.progress import DummyProgress, ProgressPhase
-from bzrlib.revision import NULL_REVISION
+from bzrlib.revision import NULL_REVISION, check_properties
 from bzrlib.rio import RioReader, rio_file, Stanza
 from bzrlib.symbol_versioning import (deprecated_passed,
         deprecated_method,
@@ -547,16 +549,17 @@
     def commit(self, message=None, revprops=None, *args, **kwargs):
         # avoid circular imports
         from bzrlib.commit import Commit
-        if revprops is None:
-            revprops = {}
-        if not 'branch-nick' in revprops:
-            revprops['branch-nick'] = self.branch.nick
+        all_revprops = self.get_revision_properties()
+        if revprops is not None:
+            all_revprops.update(revprops)
+        if not 'branch-nick' in all_revprops:
+            all_revprops['branch-nick'] = self.branch.nick
         # args for wt.commit start at message from the Commit.commit method,
         # but with branch a kwarg now, passing in args as is results in the
         #message being used for the branch
         args = (DEPRECATED_PARAMETER, message, ) + args
-        committed_id = Commit().commit( working_tree=self, revprops=revprops,
-            *args, **kwargs)
+        committed_id = Commit().commit(
+            working_tree=self, revprops=all_revprops, *args, **kwargs)
         self._set_inventory(self.read_working_inventory())
         return committed_id
 
@@ -844,6 +847,49 @@
                 merge_hashes[file_id] = hash
         return merge_hashes
 
+    @needs_read_lock
+    def get_revision_properties(self):
+        """Get the dictionary of revision properties.
+
+        These properties will be applied to the next committed revision.
+        """
+        try:
+            propfile = self._control_files.get('revision-properties')
+        except NoSuchFile:
+            return {}
+        try:
+            if propfile.next() != REVISION_PROPERTIES_HEADER_1 + '\n':
+                raise RevisionPropertiesFormatError()
+        except StopIteration:
+            raise RevisionPropertiesFormatError()
+        revprops = {}
+        for s in RioReader(propfile):
+            name = s.get('name').encode('ASCII')
+            value = s.get('value')
+            revprops[name] = value
+        return revprops
+
+    @needs_write_lock
+    def set_revision_properties(self, revprops):
+        """Set the dictionary of revision properties.
+
+        These properties will be applied to the next committed revision.
+        """
+        # check that property names and values are valid.
+        check_properties(revprops)
+        def iter_stanzas():
+            for name, value in revprops.iteritems():
+                yield Stanza(name=name, value=value)
+        self._put_rio('revision-properties', iter_stanzas(),
+                      REVISION_PROPERTIES_HEADER_1)
+
+    @needs_write_lock
+    def add_revision_property(self, name, value):
+        """Add a revision property for the next commit."""
+        revprops = self.get_revision_properties()
+        revprops[name] = value
+        self.set_revision_properties(revprops)
+
     def get_symlink_target(self, file_id):
         return os.readlink(self.id2abspath(file_id))
 
@@ -1473,6 +1519,7 @@
         conflicts = revert(self, old_tree, filenames, backups, pb)
         if not len(filenames):
             self.set_parent_ids(self.get_parent_ids()[:1])
+            self.set_revision_properties({})
             resolve(self)
         else:
             resolve(self, filenames, ignore_misses=True)

=== modified file bzrlib/testament.py // last-changed:james at jamesh.id.au-200609
... 07091919-920789006b0557a5
# revision id: james at jamesh.id.au-20060907152626-a18edb80682f7f1e
# sha1: 00cf8410c5b2cdc76481168329284c76d45fc968
# inventory sha1: b6046f3ed1e1f74e1ee19ebbcdf927fd6767741a
# parent ids:
#   james at jamesh.id.au-20060907092448-67111a2cdba7cfe6
# base id: pqm at pqm.ubuntu.com-20060906225529-7b367edabbb1ffc2
# properties:
#   branch-nick: bzr.pending-revprops

# message:
#   merge from bzr.dev
# committer: James Henstridge <james at jamesh.id.au>
# date: Thu 2006-09-07 17:24:48.551000118 +0800

=== added file bzrlib/tests/workingtree_implementations/test_revprops.py // fil
... e-id:test_pending_revprop-20060901093045-dr37c3gayae7z8d7-1 // last-changed
... :james at jamesh.id.au-20060907091919-920789006b0557a5 // encoding:base64
LS0tIC9kZXYvbnVsbAorKysgYnpybGliL3Rlc3RzL3dvcmtpbmd0cmVlX2ltcGxlbWVudGF0aW9u
cy90ZXN0X3JldnByb3BzLnB5CkBAIC0wLDAgKzEsODAgQEAKKyMgKEMpIDIwMDYgQ2Fub25pY2Fs
IEx0ZAorIworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIwor
IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1
aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisKKyIiIlRlc3RzIGZvciBpbnRl
cmZhY2UgY29uZm9ybWFuY2Ugb2Ygd29ya2luZyB0cmVlIHJldmlzaW9uIHByb3BlcnR5IG1ldGhv
ZHMiIiIKKworZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCisKK2Zyb20gYnpybGliLmVy
cm9ycyBpbXBvcnQgUmV2aXNpb25Qcm9wZXJ0aWVzRm9ybWF0RXJyb3IKK2Zyb20gYnpybGliLnRl
c3RzLndvcmtpbmd0cmVlX2ltcGxlbWVudGF0aW9ucyBpbXBvcnQgVGVzdENhc2VXaXRoV29ya2lu
Z1RyZWUKKworCitjbGFzcyBUZXN0UmV2aXNpb25Qcm9wZXJ0aWVzKFRlc3RDYXNlV2l0aFdvcmtp
bmdUcmVlKToKKworICAgIGRlZiB0ZXN0X2dldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKHNlbGYpOgor
ICAgICAgICB0ID0gc2VsZi5tYWtlX2JyYW5jaF9hbmRfdHJlZSgnLicpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoe30sIHQuZ2V0X3JldmlzaW9uX3Byb3BlcnRpZXMoKSkKKyAgICAgICAgdC5z
ZXRfcmV2aXNpb25fcHJvcGVydGllcyh7J2tleTEnOiB1J3ZhbHVlMSd9KQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHsna2V5MSc6IHUndmFsdWUxJ30sIHQuZ2V0X3JldmlzaW9uX3Byb3BlcnRp
ZXMoKSkKKyAgICAgICAgdC5hZGRfcmV2aXNpb25fcHJvcGVydHkoJ2tleTInLCAndmFsdWUyJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh7J2tleTEnOiB1J3ZhbHVlMScsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICdrZXkyJzogdSd2YWx1ZTInfSwgdC5nZXRfcmV2aXNpb25fcHJvcGVy
dGllcygpKQorICAgICAgICB0LmFkZF9yZXZpc2lvbl9wcm9wZXJ0eSgnbmFtZScsIHUnRXJpayBC
XHhlNWdmb3JzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J0VyaWsgQlx4ZTVnZm9ycycs
CisgICAgICAgICAgICAgICAgICAgICAgICAgdC5nZXRfcmV2aXNpb25fcHJvcGVydGllcygpWydu
YW1lJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIHQuYWRkX3JldmlzaW9uX3Byb3BlcnR5LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAnblx4QzNceEEybWUnLCAndmFsdWUnKQorCisgICAgZGVmIHRlc3RfaW52YWxp
ZF9yZXZpc2lvbl9wcm9wZXJ0aWVzX2ZpbGUoc2VsZik6CisgICAgICAgIHQgPSBzZWxmLm1ha2Vf
YnJhbmNoX2FuZF90cmVlKCcuJykKKyAgICAgICAgdC5fY29udHJvbF9maWxlcy5wdXQoJ3Jldmlz
aW9uLXByb3BlcnRpZXMnLCBTdHJpbmdJTygnaW52YWxpZCBkYXRhJykpCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFJldmlzaW9uUHJvcGVydGllc0Zvcm1hdEVycm9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICB0LmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKQorCisgICAgZGVmIHRlc3Rf
Y29tbWl0X3JldmlzaW9uX3Byb3BlcnRpZXMoc2VsZik6CisgICAgICAgIHQgPSBzZWxmLm1ha2Vf
YnJhbmNoX2FuZF90cmVlKCcuJykKKyAgICAgICAgYiA9IHQuYnJhbmNoCisgICAgICAgICMgbm8g
d29ya2luZyB0cmVlIHJldnByb3BzIGFmdGVyIGNvbW1pdAorICAgICAgICB0LmFkZF9yZXZpc2lv
bl9wcm9wZXJ0eSgna2V5MScsICd2YWx1ZTEnKQorICAgICAgICByZXYxX2lkID0gdC5jb21taXQo
J2ZvbycsIGFsbG93X3BvaW50bGVzcz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHt9
LCB0LmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKCkpCisgICAgICAgIHJldjEgPSBiLnJlcG9zaXRv
cnkuZ2V0X3JldmlzaW9uKHJldjFfaWQpCisgICAgICAgIHNlbGYuZmFpbFVubGVzcyh1J2tleTEn
IGluIHJldjEucHJvcGVydGllcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J3ZhbHVlMScs
IHJldjEucHJvcGVydGllc1sna2V5MSddKQorCisgICAgICAgICMgdmFsdWUgZnJvbSBjb21taXQo
KSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgd29ya2luZyB0cmVlIHZhbHVlCisgICAgICAgIHQuYWRk
X3JldmlzaW9uX3Byb3BlcnR5KCdrZXkxJywgJ3ZhbHVlMScpCisgICAgICAgIHQuYWRkX3Jldmlz
aW9uX3Byb3BlcnR5KCdrZXkyJywgJ3RyZWUgdmFsdWUnKQorICAgICAgICByZXYyX2lkID0gdC5j
b21taXQoJ2ZvbycsIHJldnByb3BzPXsna2V5Mic6ICdjb21taXQgdmFsdWUnfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFsbG93X3BvaW50bGVzcz1UcnVlKQorICAgICAgICByZXYyID0g
Yi5yZXBvc2l0b3J5LmdldF9yZXZpc2lvbihyZXYyX2lkKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHUndmFsdWUxJywgcmV2Mi5wcm9wZXJ0aWVzWydrZXkxJ10pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodSdjb21taXQgdmFsdWUnLCByZXYyLnByb3BlcnRpZXNbJ2tleTInXSkKKworICAg
IGRlZiB0ZXN0X3JldmVydF9yZXZpc2lvbl9wcm9wZXJ0aWVzKHNlbGYpOgorICAgICAgICB0ID0g
c2VsZi5tYWtlX2JyYW5jaF9hbmRfdHJlZSgnLicpCisgICAgICAgICMgZG9pbmcgYSBmdWxsIHJl
dmVydCByZW1vdmVzIHJldnByb3BzCisgICAgICAgIHQuYWRkX3JldmlzaW9uX3Byb3BlcnR5KCdr
ZXkxJywgJ3ZhbHVlMScpCisgICAgICAgIHQucmV2ZXJ0KFtdKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHt9LCB0LmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKCkpCisKKyAgICAgICAgIyByZXZl
cnRpbmcgYSBsaXN0IG9mIGZpbGVzIGxlYXZlcyByZXZwcm9wcworICAgICAgICB0LmFkZF9yZXZp
c2lvbl9wcm9wZXJ0eSgna2V5MScsICd2YWx1ZTEnKQorICAgICAgICBmaWxlKCdoZWxsby50eHQn
LCAndycpLndyaXRlKCdmaWxlIGNvbnRlbnRzJykKKyAgICAgICAgdC5hZGQoWydoZWxsby50eHQn
XSkKKyAgICAgICAgdC5yZXZlcnQoWydoZWxsby50eHQnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh7J2tleTEnOiB1J3ZhbHVlMSd9LCB0LmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKCkpCgo=

=== modified file bzrlib/commit.py // last-changed:james.henstridge at canonical.c
... om-20060902103147-37589f2899f169be // encoding:base64
LS0tIGJ6cmxpYi9jb21taXQucHkKKysrIGJ6cmxpYi9jb21taXQucHkKQEAgLTMxOSw2ICszMTks
OSBAQAogICAgICAgICAgICAgIyBhbmQgbm93IGRvIHRoZSBjb21taXQgbG9jYWxseS4KICAgICAg
ICAgICAgIHNlbGYuYnJhbmNoLmFwcGVuZF9yZXZpc2lvbihzZWxmLnJldl9pZCkKIAorICAgICAg
ICAgICAgIyByZXNldCB0aGUgd29ya2luZyB0cmVlIHJldmlzaW9uIHByb3BlcnRpZXMuCisgICAg
ICAgICAgICBzZWxmLndvcmtfdHJlZS5zZXRfcmV2aXNpb25fcHJvcGVydGllcyh7fSkKKwogICAg
ICAgICAgICAgIyBpZiB0aGUgYnVpbGRlciBnYXZlIHVzIHRoZSByZXZpc2lvbnRyZWUgaXQgY3Jl
YXRlZCBiYWNrLCB3ZQogICAgICAgICAgICAgIyBjb3VsZCB1c2UgaXQgc3RyYWlnaHQgYXdheSBo
ZXJlLgogICAgICAgICAgICAgIyBUT0RPOiBpbXBsZW1lbnQgdGhpcy4KCg==

=== modified file bzrlib/errors.py // encoding:base64
LS0tIGJ6cmxpYi9lcnJvcnMucHkKKysrIGJ6cmxpYi9lcnJvcnMucHkKQEAgLTEwMjgsNiArMTAy
OCwxMCBAQAogICAgICIiIkZvcm1hdCBlcnJvciBpbiBjb25mbGljdCBsaXN0aW5ncyIiIgogCiAK
K2NsYXNzIFJldmlzaW9uUHJvcGVydGllc0Zvcm1hdEVycm9yKEJ6ck5ld0Vycm9yKToKKyAgICAi
IiJGb3JtYXQgZXJyb3IgaW4gcmV2aXNpb24gcHJvcGVydHkgbGlzdGluZyIiIgorCisKIGNsYXNz
IENvcnJ1cHRSZXBvc2l0b3J5KEJ6ck5ld0Vycm9yKToKICAgICAiIiJBbiBlcnJvciBoYXMgYmVl
biBkZXRlY3RlZCBpbiB0aGUgcmVwb3NpdG9yeSAlKHJlcG9fcGF0aClzLgogUGxlYXNlIHJ1biBi
enIgcmVjb25jaWxlIG9uIHRoaXMgcmVwb3NpdG9yeS4iIiIKCg==

=== modified file bzrlib/revision.py // last-changed:james at jamesh.id.au-2006090
... 7091919-920789006b0557a5 // encoding:base64
LS0tIGJ6cmxpYi9yZXZpc2lvbi5weQorKysgYnpybGliL3JldmlzaW9uLnB5CkBAIC01MCw3ICs1
MCw3IEBACiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJldmlzaW9uX2lkLCBwcm9wZXJ0aWVzPU5v
bmUsICoqYXJncyk6CiAgICAgICAgIHNlbGYucmV2aXNpb25faWQgPSByZXZpc2lvbl9pZAogICAg
ICAgICBzZWxmLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzIG9yIHt9Ci0gICAgICAgIHNlbGYuX2No
ZWNrX3Byb3BlcnRpZXMoKQorICAgICAgICBjaGVja19wcm9wZXJ0aWVzKHNlbGYucHJvcGVydGll
cykKICAgICAgICAgc2VsZi5wYXJlbnRfaWRzID0gW10KICAgICAgICAgc2VsZi5wYXJlbnRfc2hh
MXMgPSBbXQogICAgICAgICAiIiJOb3QgdXNlZCBhbnltb3JlIC0gbGVnYWN5IGZyb20gZm9yIDQu
IiIiCkBAIC03NSwxNSArNzUsNiBAQAogICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgogICAg
ICAgICByZXR1cm4gbm90IHNlbGYuX19lcV9fKG90aGVyKQogCi0gICAgZGVmIF9jaGVja19wcm9w
ZXJ0aWVzKHNlbGYpOgotICAgICAgICAiIiJWZXJpZnkgdGhhdCBhbGwgcmV2aXNpb24gcHJvcGVy
dGllcyBhcmUgT0suIiIiCi0gICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLnByb3BlcnRp
ZXMuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShuYW1lLCBiYXNl
c3RyaW5nKSBvciBjb250YWluc193aGl0ZXNwYWNlKG5hbWUpOgotICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoImludmFsaWQgcHJvcGVydHkgbmFtZSAlciIgJSBuYW1lKQotICAgICAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIGJhc2VzdHJpbmcpOgotICAgICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoImludmFsaWQgcHJvcGVydHkgdmFsdWUgJXIgZm9yICVyIiAl
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUsIHZhbHVlKSkKLQogICAg
IGRlZiBnZXRfaGlzdG9yeShzZWxmLCByZXBvc2l0b3J5KToKICAgICAgICAgIiIiUmV0dXJuIHRo
ZSBjYW5vbmljYWwgbGluZS1vZi1oaXN0b3J5IGZvciB0aGlzIHJldmlzaW9uLgogCkBAIC0xMDks
NiArMTAwLDIwIEBACiAgICAgICAgIHJldHVybiBzZWxmLm1lc3NhZ2Uuc3BsaXQoJ1xuJywgMSlb
MF0KIAogCitkZWYgY2hlY2tfcHJvcGVydGllcyhwcm9wZXJ0aWVzKToKKyAgICAiIiJWZXJpZnkg
dGhhdCBhIGRpY3Rpb25hcnkgb2YgcmV2aXNpb24gcHJvcGVydGllcyBhcmUgT0suIiIiCisgICAg
Zm9yIG5hbWUsIHZhbHVlIGluIHByb3BlcnRpZXMuaXRlcml0ZW1zKCk6CisgICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKG5hbWUsIGJhc2VzdHJpbmcpIG9yIGNvbnRhaW5zX3doaXRlc3BhY2UobmFt
ZSk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHByb3BlcnR5IG5hbWUg
JXIiICUgbmFtZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbmFtZS5lbmNvZGUoJ0FTQ0lJ
JykKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoInByb3BlcnR5IG5hbWUgJXIgaXMgbm90IHJlcHJlc2VudGFibGUgIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaW4gQVNDSUkiICUgbmFtZSkKKyAgICAgICAgaWYgbm90IGlz
aW5zdGFuY2UodmFsdWUsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiaW52YWxpZCBwcm9wZXJ0eSB2YWx1ZSAlciBmb3IgJXIiICUgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChuYW1lLCB2YWx1ZSkpCisKIGRlZiBpc19hbmNlc3RvcihyZXZpc2lvbl9p
ZCwgY2FuZGlkYXRlX2lkLCBicmFuY2gpOgogICAgICIiIlJldHVybiB0cnVlIGlmIGNhbmRpZGF0
ZV9pZCBpcyBhbiBhbmNlc3RvciBvZiByZXZpc2lvbl9pZC4KIAoK

=== modified file bzrlib/tests/repository_implementations/test_revision.py // l
... ast-changed:james at jamesh.id.au-20060907091919-920789006b0557a5 // encoding:
... base64
LS0tIGJ6cmxpYi90ZXN0cy9yZXBvc2l0b3J5X2ltcGxlbWVudGF0aW9ucy90ZXN0X3JldmlzaW9u
LnB5CisrKyBienJsaWIvdGVzdHMvcmVwb3NpdG9yeV9pbXBsZW1lbnRhdGlvbnMvdGVzdF9yZXZp
c2lvbi5weQpAQCAtNTcsNiArNTcsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgd3Qu
Y29tbWl0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0naW52YWxpZCcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldnByb3BzPWRpY3QobnVtYmVyPTEzKSkKKyAgICAg
ICAgIyBub24tQVNDSUkgcHJvcGVydHkgbmFtZXMgYXJlIG5vdCBhbGxvd2VkCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHd0
LmNvbW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0naW52YWxpZCcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldnByb3BzPXsnblx4QzNceEEybWUnOiAndmFsdWUn
fSkKIAogCiBjbGFzcyBUZXN0UmV2aXNpb25BdHRyaWJ1dGVzKFRlc3RDYXNlV2l0aFJlcG9zaXRv
cnkpOgoK

=== modified file bzrlib/tests/workingtree_implementations/__init__.py // encod
... ing:base64
LS0tIGJ6cmxpYi90ZXN0cy93b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMvX19pbml0X18ucHkK
KysrIGJ6cmxpYi90ZXN0cy93b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMvX19pbml0X18ucHkK
QEAgLTYyLDYgKzYyLDcgQEAKICAgICAgICAgJ2J6cmxpYi50ZXN0cy53b3JraW5ndHJlZV9pbXBs
ZW1lbnRhdGlvbnMudGVzdF9sb2NraW5nJywKICAgICAgICAgJ2J6cmxpYi50ZXN0cy53b3JraW5n
dHJlZV9pbXBsZW1lbnRhdGlvbnMudGVzdF9tZXJnZV9mcm9tX2JyYW5jaCcsCiAgICAgICAgICdi
enJsaWIudGVzdHMud29ya2luZ3RyZWVfaW1wbGVtZW50YXRpb25zLnRlc3RfcGFyZW50cycsCisg
ICAgICAgICdienJsaWIudGVzdHMud29ya2luZ3RyZWVfaW1wbGVtZW50YXRpb25zLnRlc3RfcmV2
cHJvcHMnLAogICAgICAgICAnYnpybGliLnRlc3RzLndvcmtpbmd0cmVlX2ltcGxlbWVudGF0aW9u
cy50ZXN0X3B1bGwnLAogICAgICAgICAnYnpybGliLnRlc3RzLndvcmtpbmd0cmVlX2ltcGxlbWVu
dGF0aW9ucy50ZXN0X3dvcmtpbmd0cmVlJywKICAgICAgICAgXQoK

=== modified file bzrlib/workingtree.py // encoding:base64
LS0tIGJ6cmxpYi93b3JraW5ndHJlZS5weQorKysgYnpybGliL3dvcmtpbmd0cmVlLnB5CkBAIC0z
MSw2ICszMSw3IEBACiAKIE1FUkdFX01PRElGSUVEX0hFQURFUl8xID0gIkJaUiBtZXJnZS1tb2Rp
ZmllZCBsaXN0IGZvcm1hdCAxIgogQ09ORkxJQ1RfSEVBREVSXzEgPSAiQlpSIGNvbmZsaWN0IGxp
c3QgZm9ybWF0IDEiCitSRVZJU0lPTl9QUk9QRVJUSUVTX0hFQURFUl8xID0gIkJaUiByZXZpc2lv
biBwcm9wZXJ0aWVzIGxpc3QgZm9ybWF0IDEiCiAKICMgVE9ETzogR2l2ZSB0aGUgd29ya2luZ3Ry
ZWUgc29sZSByZXNwb25zaWJpbGl0eSBmb3IgdGhlIHdvcmtpbmcgaW52ZW50b3J5OwogIyByZW1v
dmUgdGhlIHZhcmlhYmxlIGFuZCByZWZlcmVuY2VzIHRvIGl0IGZyb20gdGhlIGJyYW5jaC4gIFRo
aXMgbWF5IHJlcXVpcmUKQEAgLTY1LDYgKzY2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5vU3VjaEZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RWZXJzaW9uZWRF
cnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lcmdlTW9kaWZpZWRGb3JtYXRFcnJv
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldmlzaW9uUHJvcGVydGllc0Zvcm1hdEVy
cm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5zdXBwb3J0ZWRPcGVyYXRpb24sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICApCiBmcm9tIGJ6cmxpYi5pbnZlbnRvcnkgaW1wb3J0
IEludmVudG9yeUVudHJ5LCBJbnZlbnRvcnkKQEAgLTg5LDcgKzkxLDcgQEAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdXBwb3J0c19leGVjdXRhYmxlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICkKIGZyb20gYnpybGliLnByb2dyZXNzIGltcG9ydCBEdW1teVByb2dyZXNzLCBQ
cm9ncmVzc1BoYXNlCi1mcm9tIGJ6cmxpYi5yZXZpc2lvbiBpbXBvcnQgTlVMTF9SRVZJU0lPTgor
ZnJvbSBienJsaWIucmV2aXNpb24gaW1wb3J0IE5VTExfUkVWSVNJT04sIGNoZWNrX3Byb3BlcnRp
ZXMKIGZyb20gYnpybGliLnJpbyBpbXBvcnQgUmlvUmVhZGVyLCByaW9fZmlsZSwgU3RhbnphCiBm
cm9tIGJ6cmxpYi5zeW1ib2xfdmVyc2lvbmluZyBpbXBvcnQgKGRlcHJlY2F0ZWRfcGFzc2VkLAog
ICAgICAgICBkZXByZWNhdGVkX21ldGhvZCwKQEAgLTU0NywxNiArNTQ5LDE3IEBACiAgICAgZGVm
IGNvbW1pdChzZWxmLCBtZXNzYWdlPU5vbmUsIHJldnByb3BzPU5vbmUsICphcmdzLCAqKmt3YXJn
cyk6CiAgICAgICAgICMgYXZvaWQgY2lyY3VsYXIgaW1wb3J0cwogICAgICAgICBmcm9tIGJ6cmxp
Yi5jb21taXQgaW1wb3J0IENvbW1pdAotICAgICAgICBpZiByZXZwcm9wcyBpcyBOb25lOgotICAg
ICAgICAgICAgcmV2cHJvcHMgPSB7fQotICAgICAgICBpZiBub3QgJ2JyYW5jaC1uaWNrJyBpbiBy
ZXZwcm9wczoKLSAgICAgICAgICAgIHJldnByb3BzWydicmFuY2gtbmljayddID0gc2VsZi5icmFu
Y2gubmljaworICAgICAgICBhbGxfcmV2cHJvcHMgPSBzZWxmLmdldF9yZXZpc2lvbl9wcm9wZXJ0
aWVzKCkKKyAgICAgICAgaWYgcmV2cHJvcHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhbGxf
cmV2cHJvcHMudXBkYXRlKHJldnByb3BzKQorICAgICAgICBpZiBub3QgJ2JyYW5jaC1uaWNrJyBp
biBhbGxfcmV2cHJvcHM6CisgICAgICAgICAgICBhbGxfcmV2cHJvcHNbJ2JyYW5jaC1uaWNrJ10g
PSBzZWxmLmJyYW5jaC5uaWNrCiAgICAgICAgICMgYXJncyBmb3Igd3QuY29tbWl0IHN0YXJ0IGF0
IG1lc3NhZ2UgZnJvbSB0aGUgQ29tbWl0LmNvbW1pdCBtZXRob2QsCiAgICAgICAgICMgYnV0IHdp
dGggYnJhbmNoIGEga3dhcmcgbm93LCBwYXNzaW5nIGluIGFyZ3MgYXMgaXMgcmVzdWx0cyBpbiB0
aGUKICAgICAgICAgI21lc3NhZ2UgYmVpbmcgdXNlZCBmb3IgdGhlIGJyYW5jaAogICAgICAgICBh
cmdzID0gKERFUFJFQ0FURURfUEFSQU1FVEVSLCBtZXNzYWdlLCApICsgYXJncwotICAgICAgICBj
b21taXR0ZWRfaWQgPSBDb21taXQoKS5jb21taXQoIHdvcmtpbmdfdHJlZT1zZWxmLCByZXZwcm9w
cz1yZXZwcm9wcywKLSAgICAgICAgICAgICphcmdzLCAqKmt3YXJncykKKyAgICAgICAgY29tbWl0
dGVkX2lkID0gQ29tbWl0KCkuY29tbWl0KAorICAgICAgICAgICAgd29ya2luZ190cmVlPXNlbGYs
IHJldnByb3BzPWFsbF9yZXZwcm9wcywgKmFyZ3MsICoqa3dhcmdzKQogICAgICAgICBzZWxmLl9z
ZXRfaW52ZW50b3J5KHNlbGYucmVhZF93b3JraW5nX2ludmVudG9yeSgpKQogICAgICAgICByZXR1
cm4gY29tbWl0dGVkX2lkCiAKQEAgLTg0NCw2ICs4NDcsNDggQEAKICAgICAgICAgICAgICAgICBt
ZXJnZV9oYXNoZXNbZmlsZV9pZF0gPSBoYXNoCiAgICAgICAgIHJldHVybiBtZXJnZV9oYXNoZXMK
IAorICAgIEBuZWVkc19yZWFkX2xvY2sKKyAgICBkZWYgZ2V0X3JldmlzaW9uX3Byb3BlcnRpZXMo
c2VsZik6CisgICAgICAgICIiIkdldCB0aGUgZGljdGlvbmFyeSBvZiByZXZpc2lvbiBwcm9wZXJ0
aWVzLgorCisgICAgICAgIFRoZXNlIHByb3BlcnRpZXMgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBu
ZXh0IGNvbW1pdHRlZCByZXZpc2lvbi4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHByb3BmaWxlID0gc2VsZi5fY29udHJvbF9maWxlcy5nZXQoJ3JldmlzaW9uLXByb3Bl
cnRpZXMnKQorICAgICAgICBleGNlcHQgTm9TdWNoRmlsZToKKyAgICAgICAgICAgIHJldHVybiB7
fQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBwcm9wZmlsZS5uZXh0KCkgIT0gUkVWSVNJ
T05fUFJPUEVSVElFU19IRUFERVJfMSArICdcbic6CisgICAgICAgICAgICAgICAgcmFpc2UgUmV2
aXNpb25Qcm9wZXJ0aWVzRm9ybWF0RXJyb3IoKQorICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlv
bjoKKyAgICAgICAgICAgIHJhaXNlIFJldmlzaW9uUHJvcGVydGllc0Zvcm1hdEVycm9yKCkKKyAg
ICAgICAgcmV2cHJvcHMgPSB7fQorICAgICAgICBmb3IgcyBpbiBSaW9SZWFkZXIocHJvcGZpbGUp
OgorICAgICAgICAgICAgbmFtZSA9IHMuZ2V0KCduYW1lJykuZW5jb2RlKCdBU0NJSScpCisgICAg
ICAgICAgICB2YWx1ZSA9IHMuZ2V0KCd2YWx1ZScpCisgICAgICAgICAgICByZXZwcm9wc1tuYW1l
XSA9IHZhbHVlCisgICAgICAgIHJldHVybiByZXZwcm9wcworCisgICAgQG5lZWRzX3dyaXRlX2xv
Y2sKKyAgICBkZWYgc2V0X3JldmlzaW9uX3Byb3BlcnRpZXMoc2VsZiwgcmV2cHJvcHMpOgorICAg
ICAgICAiIiJTZXQgdGhlIGRpY3Rpb25hcnkgb2YgcmV2aXNpb24gcHJvcGVydGllcy4KKworICAg
ICAgICBUaGVzZSBwcm9wZXJ0aWVzIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgbmV4dCBjb21taXR0
ZWQgcmV2aXNpb24uCisgICAgICAgICIiIgorICAgICAgICBjaGVja19wcm9wZXJ0aWVzKHJldnBy
b3BzKQorICAgICAgICBkZWYgaXRlcl9zdGFuemFzKCk6CisgICAgICAgICAgICBmb3IgbmFtZSwg
dmFsdWUgaW4gcmV2cHJvcHMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgICAgeWllbGQgU3Rh
bnphKG5hbWU9bmFtZSwgdmFsdWU9dmFsdWUpCisgICAgICAgIHNlbGYuX3B1dF9yaW8oJ3Jldmlz
aW9uLXByb3BlcnRpZXMnLCBpdGVyX3N0YW56YXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICBS
RVZJU0lPTl9QUk9QRVJUSUVTX0hFQURFUl8xKQorCisgICAgQG5lZWRzX3dyaXRlX2xvY2sKKyAg
ICBkZWYgYWRkX3JldmlzaW9uX3Byb3BlcnR5KHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAg
IiIiQWRkIGEgcmV2aXNpb24gcHJvcGVydHkgZm9yIHRoZSBuZXh0IGNvbW1pdC4iIiIKKyAgICAg
ICAgcmV2cHJvcHMgPSBzZWxmLmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKCkKKyAgICAgICAgcmV2
cHJvcHNbbmFtZV0gPSB2YWx1ZQorICAgICAgICBzZWxmLnNldF9yZXZpc2lvbl9wcm9wZXJ0aWVz
KHJldnByb3BzKQorCiAgICAgZGVmIGdldF9zeW1saW5rX3RhcmdldChzZWxmLCBmaWxlX2lkKToK
ICAgICAgICAgcmV0dXJuIG9zLnJlYWRsaW5rKHNlbGYuaWQyYWJzcGF0aChmaWxlX2lkKSkKIApA
QCAtMTQ3Myw2ICsxNTE4LDcgQEAKICAgICAgICAgY29uZmxpY3RzID0gcmV2ZXJ0KHNlbGYsIG9s
ZF90cmVlLCBmaWxlbmFtZXMsIGJhY2t1cHMsIHBiKQogICAgICAgICBpZiBub3QgbGVuKGZpbGVu
YW1lcyk6CiAgICAgICAgICAgICBzZWxmLnNldF9wYXJlbnRfaWRzKHNlbGYuZ2V0X3BhcmVudF9p
ZHMoKVs6MV0pCisgICAgICAgICAgICBzZWxmLnNldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKHt9KQog
ICAgICAgICAgICAgcmVzb2x2ZShzZWxmKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmVz
b2x2ZShzZWxmLCBmaWxlbmFtZXMsIGlnbm9yZV9taXNzZXM9VHJ1ZSkKCg==

=== modified file bzrlib/testament.py // last-changed:james at jamesh.id.au-200609
... 07091919-920789006b0557a5
# revision id: james at jamesh.id.au-20060907092448-67111a2cdba7cfe6
# sha1: 90a43c4afe4fd1e281c2f015beedcd24dd248f08
# inventory sha1: 33b875276c87eb3a8809c42721eeae61daf57a3e
# parent ids:
#   james at jamesh.id.au-20060907091919-920789006b0557a5
#   pqm at pqm.ubuntu.com-20060906225529-7b367edabbb1ffc2
# properties:
#   branch-nick: bzr.pending-revprops

# message:
#   revision property names are ASCII
# committer: James Henstridge <james at jamesh.id.au>
# date: Thu 2006-09-07 17:19:19.961999893 +0800

=== modified file bzrlib/revision.py // encoding:base64
LS0tIGJ6cmxpYi9yZXZpc2lvbi5weQorKysgYnpybGliL3JldmlzaW9uLnB5CkBAIC01MCw3ICs1
MCw3IEBACiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJldmlzaW9uX2lkLCBwcm9wZXJ0aWVzPU5v
bmUsICoqYXJncyk6CiAgICAgICAgIHNlbGYucmV2aXNpb25faWQgPSByZXZpc2lvbl9pZAogICAg
ICAgICBzZWxmLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzIG9yIHt9Ci0gICAgICAgIHNlbGYuX2No
ZWNrX3Byb3BlcnRpZXMoKQorICAgICAgICBjaGVja19wcm9wZXJ0aWVzKHNlbGYucHJvcGVydGll
cykKICAgICAgICAgc2VsZi5wYXJlbnRfaWRzID0gW10KICAgICAgICAgc2VsZi5wYXJlbnRfc2hh
MXMgPSBbXQogICAgICAgICAiIiJOb3QgdXNlZCBhbnltb3JlIC0gbGVnYWN5IGZyb20gZm9yIDQu
IiIiCkBAIC03NSwxNSArNzUsNiBAQAogICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgogICAg
ICAgICByZXR1cm4gbm90IHNlbGYuX19lcV9fKG90aGVyKQogCi0gICAgZGVmIF9jaGVja19wcm9w
ZXJ0aWVzKHNlbGYpOgotICAgICAgICAiIiJWZXJpZnkgdGhhdCBhbGwgcmV2aXNpb24gcHJvcGVy
dGllcyBhcmUgT0suIiIiCi0gICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLnByb3BlcnRp
ZXMuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShuYW1lLCBiYXNl
c3RyaW5nKSBvciBjb250YWluc193aGl0ZXNwYWNlKG5hbWUpOgotICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoImludmFsaWQgcHJvcGVydHkgbmFtZSAlciIgJSBuYW1lKQotICAgICAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIGJhc2VzdHJpbmcpOgotICAgICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoImludmFsaWQgcHJvcGVydHkgdmFsdWUgJXIgZm9yICVyIiAl
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUsIHZhbHVlKSkKLQogICAg
IGRlZiBnZXRfaGlzdG9yeShzZWxmLCByZXBvc2l0b3J5KToKICAgICAgICAgIiIiUmV0dXJuIHRo
ZSBjYW5vbmljYWwgbGluZS1vZi1oaXN0b3J5IGZvciB0aGlzIHJldmlzaW9uLgogCkBAIC0xMDks
NiArMTAwLDIwIEBACiAgICAgICAgIHJldHVybiBzZWxmLm1lc3NhZ2Uuc3BsaXQoJ1xuJywgMSlb
MF0KIAogCitkZWYgY2hlY2tfcHJvcGVydGllcyhwcm9wZXJ0aWVzKToKKyAgICAiIiJWZXJpZnkg
dGhhdCBhIGRpY3Rpb25hcnkgb2YgcmV2aXNpb24gcHJvcGVydGllcyBhcmUgT0suIiIiCisgICAg
Zm9yIG5hbWUsIHZhbHVlIGluIHByb3BlcnRpZXMuaXRlcml0ZW1zKCk6CisgICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKG5hbWUsIGJhc2VzdHJpbmcpIG9yIGNvbnRhaW5zX3doaXRlc3BhY2UobmFt
ZSk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHByb3BlcnR5IG5hbWUg
JXIiICUgbmFtZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbmFtZS5lbmNvZGUoJ0FTQ0lJ
JykKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoInByb3BlcnR5IG5hbWUgJXIgaXMgbm90IHJlcHJlc2VudGFibGUgIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaW4gQVNDSUkiICUgbmFtZSkKKyAgICAgICAgaWYgbm90IGlz
aW5zdGFuY2UodmFsdWUsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiaW52YWxpZCBwcm9wZXJ0eSB2YWx1ZSAlciBmb3IgJXIiICUgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChuYW1lLCB2YWx1ZSkpCisKIGRlZiBpc19hbmNlc3RvcihyZXZpc2lvbl9p
ZCwgY2FuZGlkYXRlX2lkLCBicmFuY2gpOgogICAgICIiIlJldHVybiB0cnVlIGlmIGNhbmRpZGF0
ZV9pZCBpcyBhbiBhbmNlc3RvciBvZiByZXZpc2lvbl9pZC4KIAoK

=== modified file bzrlib/testament.py // encoding:base64
LS0tIGJ6cmxpYi90ZXN0YW1lbnQucHkKKysrIGJ6cmxpYi90ZXN0YW1lbnQucHkKQEAgLTE4Myw3
ICsxODMsNyBAQAogICAgICAgICAgICAgcmV0dXJuIFtdCiAgICAgICAgIHIgPSBbJ3Byb3BlcnRp
ZXM6XG4nXQogICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc29ydGVkKHNlbGYucmV2cHJvcHMu
aXRlbXMoKSk6Ci0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShuYW1lLCBiYXNlc3RyaW5n
KQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobmFtZSwgc3RyKQogICAgICAgICAgICAg
YXNzZXJ0IG5vdCBjb250YWluc193aGl0ZXNwYWNlKG5hbWUpCiAgICAgICAgICAgICByLmFwcGVu
ZCgnICAlczpcbicgJSBuYW1lKQogICAgICAgICAgICAgZm9yIGxpbmUgaW4gdmFsdWUuc3BsaXRs
aW5lcygpOgoK

=== modified file bzrlib/tests/repository_implementations/test_revision.py // e
... ncoding:base64
LS0tIGJ6cmxpYi90ZXN0cy9yZXBvc2l0b3J5X2ltcGxlbWVudGF0aW9ucy90ZXN0X3JldmlzaW9u
LnB5CisrKyBienJsaWIvdGVzdHMvcmVwb3NpdG9yeV9pbXBsZW1lbnRhdGlvbnMvdGVzdF9yZXZp
c2lvbi5weQpAQCAtNTcsNiArNTcsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgd3Qu
Y29tbWl0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0naW52YWxpZCcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldnByb3BzPWRpY3QobnVtYmVyPTEzKSkKKyAgICAg
ICAgIyBub24tQVNDSUkgcHJvcGVydHkgbmFtZXMgYXJlIG5vdCBhbGxvd2VkCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHd0
LmNvbW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0naW52YWxpZCcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldnByb3BzPXsnblx4QzNceEEybWUnOiAndmFsdWUn
fSkKIAogCiBjbGFzcyBUZXN0UmV2aXNpb25BdHRyaWJ1dGVzKFRlc3RDYXNlV2l0aFJlcG9zaXRv
cnkpOgoK

=== modified file bzrlib/tests/workingtree_implementations/test_revprops.py // 
... encoding:base64
LS0tIGJ6cmxpYi90ZXN0cy93b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMvdGVzdF9yZXZwcm9w
cy5weQorKysgYnpybGliL3Rlc3RzL3dvcmtpbmd0cmVlX2ltcGxlbWVudGF0aW9ucy90ZXN0X3Jl
dnByb3BzLnB5CkBAIC0yNywxMSArMjcsMTcgQEAKICAgICBkZWYgdGVzdF9nZXRfcmV2aXNpb25f
cHJvcGVydGllcyhzZWxmKToKICAgICAgICAgdCA9IHNlbGYubWFrZV9icmFuY2hfYW5kX3RyZWUo
Jy4nKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHt9LCB0LmdldF9yZXZpc2lvbl9wcm9wZXJ0
aWVzKCkpCi0gICAgICAgIHQuc2V0X3JldmlzaW9uX3Byb3BlcnRpZXMoe3Una2V5MSc6IHUndmFs
dWUxJ30pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoe3Una2V5MSc6IHUndmFsdWUxJ30sIHQu
Z2V0X3JldmlzaW9uX3Byb3BlcnRpZXMoKSkKKyAgICAgICAgdC5zZXRfcmV2aXNpb25fcHJvcGVy
dGllcyh7J2tleTEnOiB1J3ZhbHVlMSd9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHsna2V5
MSc6IHUndmFsdWUxJ30sIHQuZ2V0X3JldmlzaW9uX3Byb3BlcnRpZXMoKSkKICAgICAgICAgdC5h
ZGRfcmV2aXNpb25fcHJvcGVydHkoJ2tleTInLCAndmFsdWUyJykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh7dSdrZXkxJzogdSd2YWx1ZTEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1
J2tleTInOiB1J3ZhbHVlMid9LCB0LmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKCkpIAorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHsna2V5MSc6IHUndmFsdWUxJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2tleTInOiB1J3ZhbHVlMid9LCB0LmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKCkp
CisgICAgICAgIHQuYWRkX3JldmlzaW9uX3Byb3BlcnR5KCduYW1lJywgdSdFcmlrIEJceGU1Z2Zv
cnMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUnRXJpayBCXHhlNWdmb3JzJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICB0LmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKClbJ25hbWUnXSkK
KyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgdC5hZGRfcmV2aXNpb25fcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICduXHhDM1x4QTJtZScsICd2YWx1ZScpCiAKICAgICBkZWYgdGVzdF9pbnZhbGlkX3Jldmlz
aW9uX3Byb3BlcnRpZXNfZmlsZShzZWxmKToKICAgICAgICAgdCA9IHNlbGYubWFrZV9icmFuY2hf
YW5kX3RyZWUoJy4nKQpAQCAtNzEsNCArNzcsNCBAQAogICAgICAgICBmaWxlKCdoZWxsby50eHQn
LCAndycpLndyaXRlKCdmaWxlIGNvbnRlbnRzJykKICAgICAgICAgdC5hZGQoWydoZWxsby50eHQn
XSkKICAgICAgICAgdC5yZXZlcnQoWydoZWxsby50eHQnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh7dSdrZXkxJzogdSd2YWx1ZTEnfSwgdC5nZXRfcmV2aXNpb25fcHJvcGVydGllcygpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHsna2V5MSc6IHUndmFsdWUxJ30sIHQuZ2V0X3Jldmlz
aW9uX3Byb3BlcnRpZXMoKSkKCg==

=== modified file bzrlib/workingtree.py // encoding:base64
LS0tIGJ6cmxpYi93b3JraW5ndHJlZS5weQorKysgYnpybGliL3dvcmtpbmd0cmVlLnB5CkBAIC05
MSw3ICs5MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHNfZXhlY3V0
YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiBmcm9tIGJ6cmxpYi5wcm9ncmVz
cyBpbXBvcnQgRHVtbXlQcm9ncmVzcywgUHJvZ3Jlc3NQaGFzZQotZnJvbSBienJsaWIucmV2aXNp
b24gaW1wb3J0IE5VTExfUkVWSVNJT04KK2Zyb20gYnpybGliLnJldmlzaW9uIGltcG9ydCBOVUxM
X1JFVklTSU9OLCBjaGVja19wcm9wZXJ0aWVzCiBmcm9tIGJ6cmxpYi5yaW8gaW1wb3J0IFJpb1Jl
YWRlciwgcmlvX2ZpbGUsIFN0YW56YQogZnJvbSBienJsaWIuc3ltYm9sX3ZlcnNpb25pbmcgaW1w
b3J0IChkZXByZWNhdGVkX3Bhc3NlZCwKICAgICAgICAgZGVwcmVjYXRlZF9tZXRob2QsCkBAIC04
MTYsNyArODE2LDcgQEAKICAgICAgICAgICAgIHJhaXNlIFJldmlzaW9uUHJvcGVydGllc0Zvcm1h
dEVycm9yKCkKICAgICAgICAgcmV2cHJvcHMgPSB7fQogICAgICAgICBmb3IgcyBpbiBSaW9SZWFk
ZXIocHJvcGZpbGUpOgotICAgICAgICAgICAgbmFtZSA9IHMuZ2V0KCduYW1lJykKKyAgICAgICAg
ICAgIG5hbWUgPSBzLmdldCgnbmFtZScpLmVuY29kZSgnQVNDSUknKQogICAgICAgICAgICAgdmFs
dWUgPSBzLmdldCgndmFsdWUnKQogICAgICAgICAgICAgcmV2cHJvcHNbbmFtZV0gPSB2YWx1ZQog
ICAgICAgICByZXR1cm4gcmV2cHJvcHMKQEAgLTgyNyw2ICs4MjcsNyBAQAogCiAgICAgICAgIFRo
ZXNlIHByb3BlcnRpZXMgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBuZXh0IGNvbW1pdHRlZCByZXZp
c2lvbi4KICAgICAgICAgIiIiCisgICAgICAgIGNoZWNrX3Byb3BlcnRpZXMocmV2cHJvcHMpCiAg
ICAgICAgIGRlZiBpdGVyX3N0YW56YXMoKToKICAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBp
biByZXZwcm9wcy5pdGVyaXRlbXMoKToKICAgICAgICAgICAgICAgICB5aWVsZCBTdGFuemEobmFt
ZT1uYW1lLCB2YWx1ZT12YWx1ZSkKCg==

# revision id: james at jamesh.id.au-20060907091919-920789006b0557a5
# sha1: 9794e52216ae143b3ef51c3aeeea17d317bda9f6
# inventory sha1: 82f556a7a084865c973645b4f85847f3359e1688
# parent ids:
#   james.henstridge at canonical.com-20060902103147-37589f2899f169be
# properties:
#   branch-nick: bzr.pending-revprops

# message:
#   some further fixes after renaming
# committer: James Henstridge <james.henstridge at canonical.com>
# date: Sat 2006-09-02 18:31:47.852999926 +0800

=== modified file bzrlib/commit.py // encoding:base64
LS0tIGJ6cmxpYi9jb21taXQucHkKKysrIGJ6cmxpYi9jb21taXQucHkKQEAgLTMxOSw3ICszMTks
NyBAQAogICAgICAgICAgICAgIyBhbmQgbm93IGRvIHRoZSBjb21taXQgbG9jYWxseS4KICAgICAg
ICAgICAgIHNlbGYuYnJhbmNoLmFwcGVuZF9yZXZpc2lvbihzZWxmLnJldl9pZCkKIAotICAgICAg
ICAgICAgIyByZXNldCB0aGUgbGlzdCBvZiBwZW5kaW5nIHJldmlzaW9uIHByb3BlcnRpZXMuCisg
ICAgICAgICAgICAjIHJlc2V0IHRoZSB3b3JraW5nIHRyZWUgcmV2aXNpb24gcHJvcGVydGllcy4K
ICAgICAgICAgICAgIHNlbGYud29ya190cmVlLnNldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKHt9KQog
CiAgICAgICAgICAgICAjIGlmIHRoZSBidWlsZGVyIGdhdmUgdXMgdGhlIHJldmlzaW9udHJlZSBp
dCBjcmVhdGVkIGJhY2ssIHdlCgo=

=== modified file bzrlib/tests/workingtree_implementations/__init__.py // encod
... ing:base64
LS0tIGJ6cmxpYi90ZXN0cy93b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMvX19pbml0X18ucHkK
KysrIGJ6cmxpYi90ZXN0cy93b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMvX19pbml0X18ucHkK
QEAgLTYxLDcgKzYxLDcgQEAKICAgICAgICAgJ2J6cmxpYi50ZXN0cy53b3JraW5ndHJlZV9pbXBs
ZW1lbnRhdGlvbnMudGVzdF9pc19pZ25vcmVkJywKICAgICAgICAgJ2J6cmxpYi50ZXN0cy53b3Jr
aW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMudGVzdF9sb2NraW5nJywKICAgICAgICAgJ2J6cmxpYi50
ZXN0cy53b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMudGVzdF9wYXJlbnRzJywKLSAgICAgICAg
J2J6cmxpYi50ZXN0cy53b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMudGVzdF9wZW5kaW5nX3Jl
dnByb3BzJywKKyAgICAgICAgJ2J6cmxpYi50ZXN0cy53b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlv
bnMudGVzdF9yZXZwcm9wcycsCiAgICAgICAgICdienJsaWIudGVzdHMud29ya2luZ3RyZWVfaW1w
bGVtZW50YXRpb25zLnRlc3RfcHVsbCcsCiAgICAgICAgICdienJsaWIudGVzdHMud29ya2luZ3Ry
ZWVfaW1wbGVtZW50YXRpb25zLnRlc3Rfd29ya2luZ3RyZWUnLAogICAgICAgICBdCgo=

=== modified file bzrlib/tests/workingtree_implementations/test_revprops.py // 
... encoding:base64
LS0tIGJ6cmxpYi90ZXN0cy93b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMvdGVzdF9yZXZwcm9w
cy5weQorKysgYnpybGliL3Rlc3RzL3dvcmtpbmd0cmVlX2ltcGxlbWVudGF0aW9ucy90ZXN0X3Jl
dnByb3BzLnB5CkBAIC0xNCw3ICsxNCw3IEBACiAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAjIEZvdW5kYXRpb24sIEluYy4sIDU5
IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIAot
IiIiVGVzdHMgZm9yIGludGVyZmFjZSBjb25mb3JtYW5jZSBvZiB3b3JraW5nIHRyZWUgcGVuZGlu
ZyByZXZwcm9wIG1ldGhvZHMiIiIKKyIiIlRlc3RzIGZvciBpbnRlcmZhY2UgY29uZm9ybWFuY2Ug
b2Ygd29ya2luZyB0cmVlIHJldmlzaW9uIHByb3BlcnR5IG1ldGhvZHMiIiIKIAogZnJvbSBjU3Ry
aW5nSU8gaW1wb3J0IFN0cmluZ0lPCiAKQEAgLTQyLDcgKzQyLDcgQEAKICAgICBkZWYgdGVzdF9j
b21taXRfcmV2aXNpb25fcHJvcGVydGllcyhzZWxmKToKICAgICAgICAgdCA9IHNlbGYubWFrZV9i
cmFuY2hfYW5kX3RyZWUoJy4nKQogICAgICAgICBiID0gdC5icmFuY2gKLSAgICAgICAgIyBubyBw
ZW5kaW5nIHJldnByb3BzIGFmdGVyIGNvbW1pdAorICAgICAgICAjIG5vIHdvcmtpbmcgdHJlZSBy
ZXZwcm9wcyBhZnRlciBjb21taXQKICAgICAgICAgdC5hZGRfcmV2aXNpb25fcHJvcGVydHkoJ2tl
eTEnLCAndmFsdWUxJykKICAgICAgICAgcmV2MV9pZCA9IHQuY29tbWl0KCdmb28nLCBhbGxvd19w
b2ludGxlc3M9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh7fSwgdC5nZXRfcmV2aXNp
b25fcHJvcGVydGllcygpKQpAQCAtNTAsOSArNTAsOSBAQAogICAgICAgICBzZWxmLmZhaWxVbmxl
c3ModSdrZXkxJyBpbiByZXYxLnByb3BlcnRpZXMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dSd2YWx1ZTEnLCByZXYxLnByb3BlcnRpZXNbJ2tleTEnXSkKIAotICAgICAgICAjIHZhbHVlIGZy
b20gY29tbWl0KCkgdGFrZXMgcHJlY2VkZW5jZSB0byBwZW5kaW5nIHJldnByb3AKKyAgICAgICAg
IyB2YWx1ZSBmcm9tIGNvbW1pdCgpIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB3b3JraW5nIHRyZWUg
dmFsdWUKICAgICAgICAgdC5hZGRfcmV2aXNpb25fcHJvcGVydHkoJ2tleTEnLCAndmFsdWUxJykK
LSAgICAgICAgdC5hZGRfcmV2aXNpb25fcHJvcGVydHkoJ2tleTInLCAncGVuZGluZyB2YWx1ZScp
CisgICAgICAgIHQuYWRkX3JldmlzaW9uX3Byb3BlcnR5KCdrZXkyJywgJ3RyZWUgdmFsdWUnKQog
ICAgICAgICByZXYyX2lkID0gdC5jb21taXQoJ2ZvbycsIHJldnByb3BzPXsna2V5Mic6ICdjb21t
aXQgdmFsdWUnfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93X3BvaW50bGVzcz1U
cnVlKQogICAgICAgICByZXYyID0gYi5yZXBvc2l0b3J5LmdldF9yZXZpc2lvbihyZXYyX2lkKQpA
QCAtNjEsMTIgKzYxLDEyIEBACiAKICAgICBkZWYgdGVzdF9yZXZlcnRfcmV2aXNpb25fcHJvcGVy
dGllcyhzZWxmKToKICAgICAgICAgdCA9IHNlbGYubWFrZV9icmFuY2hfYW5kX3RyZWUoJy4nKQot
ICAgICAgICAjIGRvaW5nIGEgZnVsbCByZXZlcnQgcmVtb3ZlcyBwZW5kaW5nIHJldnByb3BzCisg
ICAgICAgICMgZG9pbmcgYSBmdWxsIHJldmVydCByZW1vdmVzIHJldnByb3BzCiAgICAgICAgIHQu
YWRkX3JldmlzaW9uX3Byb3BlcnR5KCdrZXkxJywgJ3ZhbHVlMScpCiAgICAgICAgIHQucmV2ZXJ0
KFtdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHt9LCB0LmdldF9yZXZpc2lvbl9wcm9wZXJ0
aWVzKCkpCiAKLSAgICAgICAgIyByZXZlcnRpbmcgYSBsaXN0IG9mIGZpbGVzIGxlYXZlcyBwZW5k
aW5nIHJldnByb3BzCisgICAgICAgICMgcmV2ZXJ0aW5nIGEgbGlzdCBvZiBmaWxlcyBsZWF2ZXMg
cmV2cHJvcHMKICAgICAgICAgdC5hZGRfcmV2aXNpb25fcHJvcGVydHkoJ2tleTEnLCAndmFsdWUx
JykKICAgICAgICAgZmlsZSgnaGVsbG8udHh0JywgJ3cnKS53cml0ZSgnZmlsZSBjb250ZW50cycp
CiAgICAgICAgIHQuYWRkKFsnaGVsbG8udHh0J10pCgo=

# revision id: james.henstridge at canonical.com-20060902103147-37589f2899f169be
# sha1: d4dde6f15723ca9e48bd66450cbfa48d0a897921
# inventory sha1: 94037045ef9c0f1f8c764aee4c7549af17ee81e5
# parent ids:
#   james.henstridge at canonical.com-20060902102804-fdea7414b7898a8d
# properties:
#   branch-nick: bzr.pending-revprops

# message:
#   change function names as suggested in review
# committer: James Henstridge <james.henstridge at canonical.com>
# date: Sat 2006-09-02 18:28:04.959000111 +0800

=== renamed file bzrlib/tests/workingtree_implementations/test_pending_revprops
... .py // bzrlib/tests/workingtree_implementations/test_revprops.py // encodin
... g:base64
LS0tIGJ6cmxpYi90ZXN0cy93b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMvdGVzdF9wZW5kaW5n
X3JldnByb3BzLnB5CisrKyBienJsaWIvdGVzdHMvd29ya2luZ3RyZWVfaW1wbGVtZW50YXRpb25z
L3Rlc3RfcmV2cHJvcHMucHkKQEAgLTE4LDU2ICsxOCw1NyBAQAogCiBmcm9tIGNTdHJpbmdJTyBp
bXBvcnQgU3RyaW5nSU8KIAotZnJvbSBienJsaWIuZXJyb3JzIGltcG9ydCBQZW5kaW5nUmV2cHJv
cHNGb3JtYXRFcnJvcgorZnJvbSBienJsaWIuZXJyb3JzIGltcG9ydCBSZXZpc2lvblByb3BlcnRp
ZXNGb3JtYXRFcnJvcgogZnJvbSBienJsaWIudGVzdHMud29ya2luZ3RyZWVfaW1wbGVtZW50YXRp
b25zIGltcG9ydCBUZXN0Q2FzZVdpdGhXb3JraW5nVHJlZQogCiAKLWNsYXNzIFRlc3RQZW5kaW5n
UmV2cHJvcHMoVGVzdENhc2VXaXRoV29ya2luZ1RyZWUpOgorY2xhc3MgVGVzdFJldmlzaW9uUHJv
cGVydGllcyhUZXN0Q2FzZVdpdGhXb3JraW5nVHJlZSk6CiAKLSAgICBkZWYgdGVzdF9nZXRfcGVu
ZGluZ19yZXZwcm9wcyhzZWxmKToKKyAgICBkZWYgdGVzdF9nZXRfcmV2aXNpb25fcHJvcGVydGll
cyhzZWxmKToKICAgICAgICAgdCA9IHNlbGYubWFrZV9icmFuY2hfYW5kX3RyZWUoJy4nKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHt9LCB0LmdldF9wZW5kaW5nX3JldnByb3BzKCkpCi0gICAg
ICAgIHQuc2V0X3BlbmRpbmdfcmV2cHJvcHMoe3Una2V5MSc6IHUndmFsdWUxJ30pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoe3Una2V5MSc6IHUndmFsdWUxJ30sIHQuZ2V0X3BlbmRpbmdfcmV2
cHJvcHMoKSkKLSAgICAgICAgdC5hZGRfcGVuZGluZ19yZXZwcm9wKCdrZXkyJywgJ3ZhbHVlMicp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoe30sIHQuZ2V0X3JldmlzaW9uX3Byb3BlcnRpZXMo
KSkKKyAgICAgICAgdC5zZXRfcmV2aXNpb25fcHJvcGVydGllcyh7dSdrZXkxJzogdSd2YWx1ZTEn
fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh7dSdrZXkxJzogdSd2YWx1ZTEnfSwgdC5nZXRf
cmV2aXNpb25fcHJvcGVydGllcygpKQorICAgICAgICB0LmFkZF9yZXZpc2lvbl9wcm9wZXJ0eSgn
a2V5MicsICd2YWx1ZTInKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHt1J2tleTEnOiB1J3Zh
bHVlMScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHUna2V5Mic6IHUndmFsdWUyJ30sIHQu
Z2V0X3BlbmRpbmdfcmV2cHJvcHMoKSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgIHUna2V5
Mic6IHUndmFsdWUyJ30sIHQuZ2V0X3JldmlzaW9uX3Byb3BlcnRpZXMoKSkgCiAKLSAgICBkZWYg
dGVzdF9pbnZhbGlkX3BlbmRpbmdfcmV2cHJvcHNfZmlsZShzZWxmKToKKyAgICBkZWYgdGVzdF9p
bnZhbGlkX3JldmlzaW9uX3Byb3BlcnRpZXNfZmlsZShzZWxmKToKICAgICAgICAgdCA9IHNlbGYu
bWFrZV9icmFuY2hfYW5kX3RyZWUoJy4nKQotICAgICAgICB0Ll9jb250cm9sX2ZpbGVzLnB1dCgn
cGVuZGluZy1yZXZwcm9wcycsIFN0cmluZ0lPKCdpbnZhbGlkIGRhdGEnKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoUGVuZGluZ1JldnByb3BzRm9ybWF0RXJyb3IsIHQuZ2V0X3BlbmRpbmdf
cmV2cHJvcHMpCisgICAgICAgIHQuX2NvbnRyb2xfZmlsZXMucHV0KCdyZXZpc2lvbi1wcm9wZXJ0
aWVzJywgU3RyaW5nSU8oJ2ludmFsaWQgZGF0YScpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhSZXZpc2lvblByb3BlcnRpZXNGb3JtYXRFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgdC5nZXRfcmV2aXNpb25fcHJvcGVydGllcykKIAotICAgIGRlZiB0ZXN0X2NvbW1pdF9wZW5k
aW5nX3JldnByb3BzKHNlbGYpOgorICAgIGRlZiB0ZXN0X2NvbW1pdF9yZXZpc2lvbl9wcm9wZXJ0
aWVzKHNlbGYpOgogICAgICAgICB0ID0gc2VsZi5tYWtlX2JyYW5jaF9hbmRfdHJlZSgnLicpCiAg
ICAgICAgIGIgPSB0LmJyYW5jaAogICAgICAgICAjIG5vIHBlbmRpbmcgcmV2cHJvcHMgYWZ0ZXIg
Y29tbWl0Ci0gICAgICAgIHQuYWRkX3BlbmRpbmdfcmV2cHJvcCgna2V5MScsICd2YWx1ZTEnKQor
ICAgICAgICB0LmFkZF9yZXZpc2lvbl9wcm9wZXJ0eSgna2V5MScsICd2YWx1ZTEnKQogICAgICAg
ICByZXYxX2lkID0gdC5jb21taXQoJ2ZvbycsIGFsbG93X3BvaW50bGVzcz1UcnVlKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHt9LCB0LmdldF9wZW5kaW5nX3JldnByb3BzKCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoe30sIHQuZ2V0X3JldmlzaW9uX3Byb3BlcnRpZXMoKSkKICAgICAg
ICAgcmV2MSA9IGIucmVwb3NpdG9yeS5nZXRfcmV2aXNpb24ocmV2MV9pZCkKICAgICAgICAgc2Vs
Zi5mYWlsVW5sZXNzKHUna2V5MScgaW4gcmV2MS5wcm9wZXJ0aWVzKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHUndmFsdWUxJywgcmV2MS5wcm9wZXJ0aWVzWydrZXkxJ10pCiAKICAgICAgICAg
IyB2YWx1ZSBmcm9tIGNvbW1pdCgpIHRha2VzIHByZWNlZGVuY2UgdG8gcGVuZGluZyByZXZwcm9w
Ci0gICAgICAgIHQuYWRkX3BlbmRpbmdfcmV2cHJvcCgna2V5MScsICd2YWx1ZTEnKQotICAgICAg
ICB0LmFkZF9wZW5kaW5nX3JldnByb3AoJ2tleTInLCAncGVuZGluZyB2YWx1ZScpCisgICAgICAg
IHQuYWRkX3JldmlzaW9uX3Byb3BlcnR5KCdrZXkxJywgJ3ZhbHVlMScpCisgICAgICAgIHQuYWRk
X3JldmlzaW9uX3Byb3BlcnR5KCdrZXkyJywgJ3BlbmRpbmcgdmFsdWUnKQogICAgICAgICByZXYy
X2lkID0gdC5jb21taXQoJ2ZvbycsIHJldnByb3BzPXsna2V5Mic6ICdjb21taXQgdmFsdWUnfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93X3BvaW50bGVzcz1UcnVlKQogICAgICAg
ICByZXYyID0gYi5yZXBvc2l0b3J5LmdldF9yZXZpc2lvbihyZXYyX2lkKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHUndmFsdWUxJywgcmV2Mi5wcm9wZXJ0aWVzWydrZXkxJ10pCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodSdjb21taXQgdmFsdWUnLCByZXYyLnByb3BlcnRpZXNbJ2tleTIn
XSkKIAotICAgIGRlZiB0ZXN0X3JldmVydF9wZW5kaW5nX3JldnByb3BzKHNlbGYpOgorICAgIGRl
ZiB0ZXN0X3JldmVydF9yZXZpc2lvbl9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgICB0ID0gc2Vs
Zi5tYWtlX2JyYW5jaF9hbmRfdHJlZSgnLicpCiAgICAgICAgICMgZG9pbmcgYSBmdWxsIHJldmVy
dCByZW1vdmVzIHBlbmRpbmcgcmV2cHJvcHMKLSAgICAgICAgdC5hZGRfcGVuZGluZ19yZXZwcm9w
KCdrZXkxJywgJ3ZhbHVlMScpCisgICAgICAgIHQuYWRkX3JldmlzaW9uX3Byb3BlcnR5KCdrZXkx
JywgJ3ZhbHVlMScpCiAgICAgICAgIHQucmV2ZXJ0KFtdKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHt9LCB0LmdldF9wZW5kaW5nX3JldnByb3BzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoe30sIHQuZ2V0X3JldmlzaW9uX3Byb3BlcnRpZXMoKSkKIAogICAgICAgICAjIHJldmVydGlu
ZyBhIGxpc3Qgb2YgZmlsZXMgbGVhdmVzIHBlbmRpbmcgcmV2cHJvcHMKLSAgICAgICAgdC5hZGRf
cGVuZGluZ19yZXZwcm9wKCdrZXkxJywgJ3ZhbHVlMScpCisgICAgICAgIHQuYWRkX3JldmlzaW9u
X3Byb3BlcnR5KCdrZXkxJywgJ3ZhbHVlMScpCiAgICAgICAgIGZpbGUoJ2hlbGxvLnR4dCcsICd3
Jykud3JpdGUoJ2ZpbGUgY29udGVudHMnKQogICAgICAgICB0LmFkZChbJ2hlbGxvLnR4dCddKQog
ICAgICAgICB0LnJldmVydChbJ2hlbGxvLnR4dCddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHt1J2tleTEnOiB1J3ZhbHVlMSd9LCB0LmdldF9wZW5kaW5nX3JldnByb3BzKCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoe3Una2V5MSc6IHUndmFsdWUxJ30sIHQuZ2V0X3JldmlzaW9uX3By
b3BlcnRpZXMoKSkKCg==

=== modified file bzrlib/commit.py // encoding:base64
LS0tIGJ6cmxpYi9jb21taXQucHkKKysrIGJ6cmxpYi9jb21taXQucHkKQEAgLTMyMCw3ICszMjAs
NyBAQAogICAgICAgICAgICAgc2VsZi5icmFuY2guYXBwZW5kX3JldmlzaW9uKHNlbGYucmV2X2lk
KQogCiAgICAgICAgICAgICAjIHJlc2V0IHRoZSBsaXN0IG9mIHBlbmRpbmcgcmV2aXNpb24gcHJv
cGVydGllcy4KLSAgICAgICAgICAgIHNlbGYud29ya190cmVlLnNldF9wZW5kaW5nX3JldnByb3Bz
KHt9KQorICAgICAgICAgICAgc2VsZi53b3JrX3RyZWUuc2V0X3JldmlzaW9uX3Byb3BlcnRpZXMo
e30pCiAKICAgICAgICAgICAgICMgaWYgdGhlIGJ1aWxkZXIgZ2F2ZSB1cyB0aGUgcmV2aXNpb250
cmVlIGl0IGNyZWF0ZWQgYmFjaywgd2UKICAgICAgICAgICAgICMgY291bGQgdXNlIGl0IHN0cmFp
Z2h0IGF3YXkgaGVyZS4KCg==

=== modified file bzrlib/errors.py // encoding:base64
LS0tIGJ6cmxpYi9lcnJvcnMucHkKKysrIGJ6cmxpYi9lcnJvcnMucHkKQEAgLTEwMjIsOCArMTAy
Miw4IEBACiAgICAgIiIiRm9ybWF0IGVycm9yIGluIGNvbmZsaWN0IGxpc3RpbmdzIiIiCiAKIAot
Y2xhc3MgUGVuZGluZ1JldnByb3BzRm9ybWF0RXJyb3IoQnpyTmV3RXJyb3IpOgotICAgICIiIkZv
cm1hdCBlcnJvciBpbiBwZW5kaW5nIHJldmlzaW9uIHByb3BlcnR5IGxpc3RpbmciIiIKK2NsYXNz
IFJldmlzaW9uUHJvcGVydGllc0Zvcm1hdEVycm9yKEJ6ck5ld0Vycm9yKToKKyAgICAiIiJGb3Jt
YXQgZXJyb3IgaW4gcmV2aXNpb24gcHJvcGVydHkgbGlzdGluZyIiIgogCiAKIGNsYXNzIENvcnJ1
cHRSZXBvc2l0b3J5KEJ6ck5ld0Vycm9yKToKCg==

=== modified file bzrlib/workingtree.py // encoding:base64
LS0tIGJ6cmxpYi93b3JraW5ndHJlZS5weQorKysgYnpybGliL3dvcmtpbmd0cmVlLnB5CkBAIC0z
MSw3ICszMSw3IEBACiAKIE1FUkdFX01PRElGSUVEX0hFQURFUl8xID0gIkJaUiBtZXJnZS1tb2Rp
ZmllZCBsaXN0IGZvcm1hdCAxIgogQ09ORkxJQ1RfSEVBREVSXzEgPSAiQlpSIGNvbmZsaWN0IGxp
c3QgZm9ybWF0IDEiCi1QRU5ESU5HX1JFVlBST1BTX0hFQURFUl8xID0gIkJaUiBwZW5kaW5nIHJl
dmlzaW9uIHByb3BlcnRpZXMgbGlzdCBmb3JtYXQgMSIKK1JFVklTSU9OX1BST1BFUlRJRVNfSEVB
REVSXzEgPSAiQlpSIHJldmlzaW9uIHByb3BlcnRpZXMgbGlzdCBmb3JtYXQgMSIKIAogIyBUT0RP
OiBHaXZlIHRoZSB3b3JraW5ndHJlZSBzb2xlIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUgd29ya2lu
ZyBpbnZlbnRvcnk7CiAjIHJlbW92ZSB0aGUgdmFyaWFibGUgYW5kIHJlZmVyZW5jZXMgdG8gaXQg
ZnJvbSB0aGUgYnJhbmNoLiAgVGhpcyBtYXkgcmVxdWlyZQpAQCAtNjYsNyArNjYsNyBAQAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTm9TdWNoRmlsZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5vdFZlcnNpb25lZEVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVy
Z2VNb2RpZmllZEZvcm1hdEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVuZGlu
Z1JldnByb3BzRm9ybWF0RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXZpc2lv
blByb3BlcnRpZXNGb3JtYXRFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuc3Vw
cG9ydGVkT3BlcmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogZnJvbSBienJs
aWIuaW52ZW50b3J5IGltcG9ydCBJbnZlbnRvcnlFbnRyeSwgSW52ZW50b3J5CkBAIC01NDksNyAr
NTQ5LDcgQEAKICAgICBkZWYgY29tbWl0KHNlbGYsIG1lc3NhZ2U9Tm9uZSwgcmV2cHJvcHM9Tm9u
ZSwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgIyBhdm9pZCBjaXJjdWxhciBpbXBvcnRzCiAg
ICAgICAgIGZyb20gYnpybGliLmNvbW1pdCBpbXBvcnQgQ29tbWl0Ci0gICAgICAgIGFsbF9yZXZw
cm9wcyA9IHNlbGYuZ2V0X3BlbmRpbmdfcmV2cHJvcHMoKQorICAgICAgICBhbGxfcmV2cHJvcHMg
PSBzZWxmLmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVzKCkKICAgICAgICAgaWYgcmV2cHJvcHMgaXMg
bm90IE5vbmU6CiAgICAgICAgICAgICBhbGxfcmV2cHJvcHMudXBkYXRlKHJldnByb3BzKQogICAg
ICAgICBpZiBub3QgJ2JyYW5jaC1uaWNrJyBpbiBhbGxfcmV2cHJvcHM6CkBAIC04MDAsMjEgKzgw
MCwyMCBAQAogICAgICAgICByZXR1cm4gbWVyZ2VfaGFzaGVzCiAKICAgICBAbmVlZHNfcmVhZF9s
b2NrCi0gICAgZGVmIGdldF9wZW5kaW5nX3JldnByb3BzKHNlbGYpOgotICAgICAgICAiIiJHZXQg
dGhlIGxpc3Qgb2YgcGVuZGluZyByZXZpc2lvbiBwcm9wZXJ0aWVzLgorICAgIGRlZiBnZXRfcmV2
aXNpb25fcHJvcGVydGllcyhzZWxmKToKKyAgICAgICAgIiIiR2V0IHRoZSBkaWN0aW9uYXJ5IG9m
IHJldmlzaW9uIHByb3BlcnRpZXMuCiAKLSAgICAgICAgVGhlc2UgcHJvcGVydGllcyB3aWxsIGJl
IHNldCBhcyByZXZpc2lvbiBwcm9wZXJ0aWVzIG9uIHRoZQotICAgICAgICBuZXh0IGNvbW1pdC4K
KyAgICAgICAgVGhlc2UgcHJvcGVydGllcyB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIG5leHQgY29t
bWl0dGVkIHJldmlzaW9uLgogICAgICAgICAiIiIKICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
cHJvcGZpbGUgPSBzZWxmLl9jb250cm9sX2ZpbGVzLmdldCgncGVuZGluZy1yZXZwcm9wcycpCisg
ICAgICAgICAgICBwcm9wZmlsZSA9IHNlbGYuX2NvbnRyb2xfZmlsZXMuZ2V0KCdyZXZpc2lvbi1w
cm9wZXJ0aWVzJykKICAgICAgICAgZXhjZXB0IE5vU3VjaEZpbGU6CiAgICAgICAgICAgICByZXR1
cm4ge30KICAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYgcHJvcGZpbGUubmV4dCgpICE9IFBF
TkRJTkdfUkVWUFJPUFNfSEVBREVSXzEgKyAnXG4nOgotICAgICAgICAgICAgICAgIHJhaXNlIFBl
bmRpbmdSZXZwcm9wc0Zvcm1hdEVycm9yKCkKKyAgICAgICAgICAgIGlmIHByb3BmaWxlLm5leHQo
KSAhPSBSRVZJU0lPTl9QUk9QRVJUSUVTX0hFQURFUl8xICsgJ1xuJzoKKyAgICAgICAgICAgICAg
ICByYWlzZSBSZXZpc2lvblByb3BlcnRpZXNGb3JtYXRFcnJvcigpCiAgICAgICAgIGV4Y2VwdCBT
dG9wSXRlcmF0aW9uOgotICAgICAgICAgICAgcmFpc2UgUGVuZGluZ1JldnByb3BzRm9ybWF0RXJy
b3IoKQorICAgICAgICAgICAgcmFpc2UgUmV2aXNpb25Qcm9wZXJ0aWVzRm9ybWF0RXJyb3IoKQog
ICAgICAgICByZXZwcm9wcyA9IHt9CiAgICAgICAgIGZvciBzIGluIFJpb1JlYWRlcihwcm9wZmls
ZSk6CiAgICAgICAgICAgICBuYW1lID0gcy5nZXQoJ25hbWUnKQpAQCAtODIzLDI0ICs4MjIsMjMg
QEAKICAgICAgICAgcmV0dXJuIHJldnByb3BzCiAKICAgICBAbmVlZHNfd3JpdGVfbG9jawotICAg
IGRlZiBzZXRfcGVuZGluZ19yZXZwcm9wcyhzZWxmLCByZXZwcm9wcyk6Ci0gICAgICAgICIiIlNl
dCB0aGUgbGlzdCBvZiBwZW5kaW5nIHJldmlzaW9uIHByb3BlcnRpZXMuCisgICAgZGVmIHNldF9y
ZXZpc2lvbl9wcm9wZXJ0aWVzKHNlbGYsIHJldnByb3BzKToKKyAgICAgICAgIiIiU2V0IHRoZSBk
aWN0aW9uYXJ5IG9mIHJldmlzaW9uIHByb3BlcnRpZXMuCiAKLSAgICAgICAgVGhlc2UgcHJvcGVy
dGllcyB3aWxsIGJlIHNldCBhcyByZXZpc2lvbiBwcm9wZXJ0aWVzIG9uIHRoZQotICAgICAgICBu
ZXh0IGNvbW1pdC4KKyAgICAgICAgVGhlc2UgcHJvcGVydGllcyB3aWxsIGJlIGFwcGxpZWQgdG8g
dGhlIG5leHQgY29tbWl0dGVkIHJldmlzaW9uLgogICAgICAgICAiIiIKICAgICAgICAgZGVmIGl0
ZXJfc3RhbnphcygpOgogICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHJldnByb3BzLml0
ZXJpdGVtcygpOgogICAgICAgICAgICAgICAgIHlpZWxkIFN0YW56YShuYW1lPW5hbWUsIHZhbHVl
PXZhbHVlKQotICAgICAgICBzZWxmLl9wdXRfcmlvKCdwZW5kaW5nLXJldnByb3BzJywgaXRlcl9z
dGFuemFzKCksCi0gICAgICAgICAgICAgICAgICAgICAgUEVORElOR19SRVZQUk9QU19IRUFERVJf
MSkKKyAgICAgICAgc2VsZi5fcHV0X3JpbygncmV2aXNpb24tcHJvcGVydGllcycsIGl0ZXJfc3Rh
bnphcygpLAorICAgICAgICAgICAgICAgICAgICAgIFJFVklTSU9OX1BST1BFUlRJRVNfSEVBREVS
XzEpCiAKICAgICBAbmVlZHNfd3JpdGVfbG9jawotICAgIGRlZiBhZGRfcGVuZGluZ19yZXZwcm9w
KHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICBkZWYgYWRkX3JldmlzaW9uX3Byb3BlcnR5KHNlbGYs
IG5hbWUsIHZhbHVlKToKICAgICAgICAgIiIiQWRkIGEgcmV2aXNpb24gcHJvcGVydHkgZm9yIHRo
ZSBuZXh0IGNvbW1pdC4iIiIKLSAgICAgICAgcmV2cHJvcHMgPSBzZWxmLmdldF9wZW5kaW5nX3Jl
dnByb3BzKCkKKyAgICAgICAgcmV2cHJvcHMgPSBzZWxmLmdldF9yZXZpc2lvbl9wcm9wZXJ0aWVz
KCkKICAgICAgICAgcmV2cHJvcHNbbmFtZV0gPSB2YWx1ZQotICAgICAgICBzZWxmLnNldF9wZW5k
aW5nX3JldnByb3BzKHJldnByb3BzKQorICAgICAgICBzZWxmLnNldF9yZXZpc2lvbl9wcm9wZXJ0
aWVzKHJldnByb3BzKQogCiAgICAgZGVmIGdldF9zeW1saW5rX3RhcmdldChzZWxmLCBmaWxlX2lk
KToKICAgICAgICAgcmV0dXJuIG9zLnJlYWRsaW5rKHNlbGYuaWQyYWJzcGF0aChmaWxlX2lkKSkK
QEAgLTE0NzEsNyArMTQ2OSw3IEBACiAgICAgICAgIGNvbmZsaWN0cyA9IHJldmVydChzZWxmLCBv
bGRfdHJlZSwgZmlsZW5hbWVzLCBiYWNrdXBzLCBwYikKICAgICAgICAgaWYgbm90IGxlbihmaWxl
bmFtZXMpOgogICAgICAgICAgICAgc2VsZi5zZXRfcGFyZW50X2lkcyhzZWxmLmdldF9wYXJlbnRf
aWRzKClbOjFdKQotICAgICAgICAgICAgc2VsZi5zZXRfcGVuZGluZ19yZXZwcm9wcyh7fSkKKyAg
ICAgICAgICAgIHNlbGYuc2V0X3JldmlzaW9uX3Byb3BlcnRpZXMoe30pCiAgICAgICAgICAgICBy
ZXNvbHZlKHNlbGYpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXNvbHZlKHNlbGYsIGZp
bGVuYW1lcywgaWdub3JlX21pc3Nlcz1UcnVlKQoK

# revision id: james.henstridge at canonical.com-20060902102804-fdea7414b7898a8d
# sha1: 41a8b721e4d5efc8c0959efb4ce75c44ca5def69
# inventory sha1: 3f8d0f38b3328dfebbd789635a777e7bdac64d81
# parent ids:
#   james.henstridge at canonical.com-20060901093317-40a45b3d967a7fb2
# properties:
#   branch-nick: bzr.pending-revprops

# message:
#   Apply pending revision properties during merge.
#   
#   Test pending revprop behaviour w.r.t. commiting and reverting tree.
#   
# committer: James Henstridge <james.henstridge at canonical.com>
# date: Fri 2006-09-01 17:33:17.163000107 +0800

=== added file bzrlib/tests/workingtree_implementations/test_pending_revprops.p
... y // file-id:test_pending_revprop-20060901093045-dr37c3gayae7z8d7-1 // enco
... ding:base64
LS0tIC9kZXYvbnVsbAorKysgYnpybGliL3Rlc3RzL3dvcmtpbmd0cmVlX2ltcGxlbWVudGF0aW9u
cy90ZXN0X3BlbmRpbmdfcmV2cHJvcHMucHkKQEAgLTAsMCArMSw3MyBAQAorIyAoQykgMjAwNiBD
YW5vbmljYWwgTHRkCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
CisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3Jh
bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQ
bGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKworIiIiVGVzdHMg
Zm9yIGludGVyZmFjZSBjb25mb3JtYW5jZSBvZiB3b3JraW5nIHRyZWUgcGVuZGluZyByZXZwcm9w
IG1ldGhvZHMiIiIKKworZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCisKK2Zyb20gYnpy
bGliLmVycm9ycyBpbXBvcnQgUGVuZGluZ1JldnByb3BzRm9ybWF0RXJyb3IKK2Zyb20gYnpybGli
LnRlc3RzLndvcmtpbmd0cmVlX2ltcGxlbWVudGF0aW9ucyBpbXBvcnQgVGVzdENhc2VXaXRoV29y
a2luZ1RyZWUKKworCitjbGFzcyBUZXN0UGVuZGluZ1JldnByb3BzKFRlc3RDYXNlV2l0aFdvcmtp
bmdUcmVlKToKKworICAgIGRlZiB0ZXN0X2dldF9wZW5kaW5nX3JldnByb3BzKHNlbGYpOgorICAg
ICAgICB0ID0gc2VsZi5tYWtlX2JyYW5jaF9hbmRfdHJlZSgnLicpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoe30sIHQuZ2V0X3BlbmRpbmdfcmV2cHJvcHMoKSkKKyAgICAgICAgdC5zZXRfcGVu
ZGluZ19yZXZwcm9wcyh7dSdrZXkxJzogdSd2YWx1ZTEnfSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh7dSdrZXkxJzogdSd2YWx1ZTEnfSwgdC5nZXRfcGVuZGluZ19yZXZwcm9wcygpKQorICAg
ICAgICB0LmFkZF9wZW5kaW5nX3JldnByb3AoJ2tleTInLCAndmFsdWUyJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh7dSdrZXkxJzogdSd2YWx1ZTEnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICB1J2tleTInOiB1J3ZhbHVlMid9LCB0LmdldF9wZW5kaW5nX3JldnByb3BzKCkpIAorCisg
ICAgZGVmIHRlc3RfaW52YWxpZF9wZW5kaW5nX3JldnByb3BzX2ZpbGUoc2VsZik6CisgICAgICAg
IHQgPSBzZWxmLm1ha2VfYnJhbmNoX2FuZF90cmVlKCcuJykKKyAgICAgICAgdC5fY29udHJvbF9m
aWxlcy5wdXQoJ3BlbmRpbmctcmV2cHJvcHMnLCBTdHJpbmdJTygnaW52YWxpZCBkYXRhJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFBlbmRpbmdSZXZwcm9wc0Zvcm1hdEVycm9yLCB0Lmdl
dF9wZW5kaW5nX3JldnByb3BzKQorCisgICAgZGVmIHRlc3RfY29tbWl0X3BlbmRpbmdfcmV2cHJv
cHMoc2VsZik6CisgICAgICAgIHQgPSBzZWxmLm1ha2VfYnJhbmNoX2FuZF90cmVlKCcuJykKKyAg
ICAgICAgYiA9IHQuYnJhbmNoCisgICAgICAgICMgbm8gcGVuZGluZyByZXZwcm9wcyBhZnRlciBj
b21taXQKKyAgICAgICAgdC5hZGRfcGVuZGluZ19yZXZwcm9wKCdrZXkxJywgJ3ZhbHVlMScpCisg
ICAgICAgIHJldjFfaWQgPSB0LmNvbW1pdCgnZm9vJywgYWxsb3dfcG9pbnRsZXNzPVRydWUpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoe30sIHQuZ2V0X3BlbmRpbmdfcmV2cHJvcHMoKSkKKyAg
ICAgICAgcmV2MSA9IGIucmVwb3NpdG9yeS5nZXRfcmV2aXNpb24ocmV2MV9pZCkKKyAgICAgICAg
c2VsZi5mYWlsVW5sZXNzKHUna2V5MScgaW4gcmV2MS5wcm9wZXJ0aWVzKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHUndmFsdWUxJywgcmV2MS5wcm9wZXJ0aWVzWydrZXkxJ10pCisKKyAgICAg
ICAgIyB2YWx1ZSBmcm9tIGNvbW1pdCgpIHRha2VzIHByZWNlZGVuY2UgdG8gcGVuZGluZyByZXZw
cm9wCisgICAgICAgIHQuYWRkX3BlbmRpbmdfcmV2cHJvcCgna2V5MScsICd2YWx1ZTEnKQorICAg
ICAgICB0LmFkZF9wZW5kaW5nX3JldnByb3AoJ2tleTInLCAncGVuZGluZyB2YWx1ZScpCisgICAg
ICAgIHJldjJfaWQgPSB0LmNvbW1pdCgnZm9vJywgcmV2cHJvcHM9eydrZXkyJzogJ2NvbW1pdCB2
YWx1ZSd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfcG9pbnRsZXNzPVRydWUp
CisgICAgICAgIHJldjIgPSBiLnJlcG9zaXRvcnkuZ2V0X3JldmlzaW9uKHJldjJfaWQpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodSd2YWx1ZTEnLCByZXYyLnByb3BlcnRpZXNbJ2tleTEnXSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J2NvbW1pdCB2YWx1ZScsIHJldjIucHJvcGVydGll
c1sna2V5MiddKQorCisgICAgZGVmIHRlc3RfcmV2ZXJ0X3BlbmRpbmdfcmV2cHJvcHMoc2VsZik6
CisgICAgICAgIHQgPSBzZWxmLm1ha2VfYnJhbmNoX2FuZF90cmVlKCcuJykKKyAgICAgICAgIyBk
b2luZyBhIGZ1bGwgcmV2ZXJ0IHJlbW92ZXMgcGVuZGluZyByZXZwcm9wcworICAgICAgICB0LmFk
ZF9wZW5kaW5nX3JldnByb3AoJ2tleTEnLCAndmFsdWUxJykKKyAgICAgICAgdC5yZXZlcnQoW10p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoe30sIHQuZ2V0X3BlbmRpbmdfcmV2cHJvcHMoKSkK
KworICAgICAgICAjIHJldmVydGluZyBhIGxpc3Qgb2YgZmlsZXMgbGVhdmVzIHBlbmRpbmcgcmV2
cHJvcHMKKyAgICAgICAgdC5hZGRfcGVuZGluZ19yZXZwcm9wKCdrZXkxJywgJ3ZhbHVlMScpCisg
ICAgICAgIGZpbGUoJ2hlbGxvLnR4dCcsICd3Jykud3JpdGUoJ2ZpbGUgY29udGVudHMnKQorICAg
ICAgICB0LmFkZChbJ2hlbGxvLnR4dCddKQorICAgICAgICB0LnJldmVydChbJ2hlbGxvLnR4dCdd
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHt1J2tleTEnOiB1J3ZhbHVlMSd9LCB0LmdldF9w
ZW5kaW5nX3JldnByb3BzKCkpCgo=

=== modified file bzrlib/commit.py // encoding:base64
LS0tIGJ6cmxpYi9jb21taXQucHkKKysrIGJ6cmxpYi9jb21taXQucHkKQEAgLTMxOSw2ICszMTks
OSBAQAogICAgICAgICAgICAgIyBhbmQgbm93IGRvIHRoZSBjb21taXQgbG9jYWxseS4KICAgICAg
ICAgICAgIHNlbGYuYnJhbmNoLmFwcGVuZF9yZXZpc2lvbihzZWxmLnJldl9pZCkKIAorICAgICAg
ICAgICAgIyByZXNldCB0aGUgbGlzdCBvZiBwZW5kaW5nIHJldmlzaW9uIHByb3BlcnRpZXMuCisg
ICAgICAgICAgICBzZWxmLndvcmtfdHJlZS5zZXRfcGVuZGluZ19yZXZwcm9wcyh7fSkKKwogICAg
ICAgICAgICAgIyBpZiB0aGUgYnVpbGRlciBnYXZlIHVzIHRoZSByZXZpc2lvbnRyZWUgaXQgY3Jl
YXRlZCBiYWNrLCB3ZQogICAgICAgICAgICAgIyBjb3VsZCB1c2UgaXQgc3RyYWlnaHQgYXdheSBo
ZXJlLgogICAgICAgICAgICAgIyBUT0RPOiBpbXBsZW1lbnQgdGhpcy4KCg==

=== modified file bzrlib/errors.py // encoding:base64
LS0tIGJ6cmxpYi9lcnJvcnMucHkKKysrIGJ6cmxpYi9lcnJvcnMucHkKQEAgLTEwMjIsNyArMTAy
Miw3IEBACiAgICAgIiIiRm9ybWF0IGVycm9yIGluIGNvbmZsaWN0IGxpc3RpbmdzIiIiCiAKIAot
Y2xhc3MgUGVuZGluZ1JldnByb3BGb3JtYXRFcnJvcihCenJOZXdFcnJvcik6CitjbGFzcyBQZW5k
aW5nUmV2cHJvcHNGb3JtYXRFcnJvcihCenJOZXdFcnJvcik6CiAgICAgIiIiRm9ybWF0IGVycm9y
IGluIHBlbmRpbmcgcmV2aXNpb24gcHJvcGVydHkgbGlzdGluZyIiIgogCiAKCg==

=== modified file bzrlib/testament.py // encoding:base64
LS0tIGJ6cmxpYi90ZXN0YW1lbnQucHkKKysrIGJ6cmxpYi90ZXN0YW1lbnQucHkKQEAgLTE4Myw3
ICsxODMsNyBAQAogICAgICAgICAgICAgcmV0dXJuIFtdCiAgICAgICAgIHIgPSBbJ3Byb3BlcnRp
ZXM6XG4nXQogICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc29ydGVkKHNlbGYucmV2cHJvcHMu
aXRlbXMoKSk6Ci0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShuYW1lLCBzdHIpCisgICAg
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShuYW1lLCBiYXNlc3RyaW5nKQogICAgICAgICAgICAg
YXNzZXJ0IG5vdCBjb250YWluc193aGl0ZXNwYWNlKG5hbWUpCiAgICAgICAgICAgICByLmFwcGVu
ZCgnICAlczpcbicgJSBuYW1lKQogICAgICAgICAgICAgZm9yIGxpbmUgaW4gdmFsdWUuc3BsaXRs
aW5lcygpOgoK

=== modified file bzrlib/tests/workingtree_implementations/__init__.py // encod
... ing:base64
LS0tIGJ6cmxpYi90ZXN0cy93b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMvX19pbml0X18ucHkK
KysrIGJ6cmxpYi90ZXN0cy93b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMvX19pbml0X18ucHkK
QEAgLTYxLDYgKzYxLDcgQEAKICAgICAgICAgJ2J6cmxpYi50ZXN0cy53b3JraW5ndHJlZV9pbXBs
ZW1lbnRhdGlvbnMudGVzdF9pc19pZ25vcmVkJywKICAgICAgICAgJ2J6cmxpYi50ZXN0cy53b3Jr
aW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMudGVzdF9sb2NraW5nJywKICAgICAgICAgJ2J6cmxpYi50
ZXN0cy53b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMudGVzdF9wYXJlbnRzJywKKyAgICAgICAg
J2J6cmxpYi50ZXN0cy53b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlvbnMudGVzdF9wZW5kaW5nX3Jl
dnByb3BzJywKICAgICAgICAgJ2J6cmxpYi50ZXN0cy53b3JraW5ndHJlZV9pbXBsZW1lbnRhdGlv
bnMudGVzdF9wdWxsJywKICAgICAgICAgJ2J6cmxpYi50ZXN0cy53b3JraW5ndHJlZV9pbXBsZW1l
bnRhdGlvbnMudGVzdF93b3JraW5ndHJlZScsCiAgICAgICAgIF0KCg==

=== modified file bzrlib/workingtree.py // encoding:base64
LS0tIGJ6cmxpYi93b3JraW5ndHJlZS5weQorKysgYnpybGliL3dvcmtpbmd0cmVlLnB5CkBAIC02
Niw3ICs2Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb1N1Y2hGaWxlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTm90VmVyc2lvbmVkRXJyb3IsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNZXJnZU1vZGlmaWVkRm9ybWF0RXJyb3IsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBQZW5kaW5nUmV2cHJvcEZvcm1hdEVycm9yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUGVuZGluZ1JldnByb3BzRm9ybWF0RXJyb3IsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVbnN1cHBvcnRlZE9wZXJhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICkKIGZyb20gYnpybGliLmludmVudG9yeSBpbXBvcnQgSW52ZW50b3J5RW50cnksIEludmVudG9y
eQpAQCAtNTQ5LDE2ICs1NDksMTcgQEAKICAgICBkZWYgY29tbWl0KHNlbGYsIG1lc3NhZ2U9Tm9u
ZSwgcmV2cHJvcHM9Tm9uZSwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgIyBhdm9pZCBjaXJj
dWxhciBpbXBvcnRzCiAgICAgICAgIGZyb20gYnpybGliLmNvbW1pdCBpbXBvcnQgQ29tbWl0Ci0g
ICAgICAgIGlmIHJldnByb3BzIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXZwcm9wcyA9IHt9Ci0g
ICAgICAgIGlmIG5vdCAnYnJhbmNoLW5pY2snIGluIHJldnByb3BzOgotICAgICAgICAgICAgcmV2
cHJvcHNbJ2JyYW5jaC1uaWNrJ10gPSBzZWxmLmJyYW5jaC5uaWNrCisgICAgICAgIGFsbF9yZXZw
cm9wcyA9IHNlbGYuZ2V0X3BlbmRpbmdfcmV2cHJvcHMoKQorICAgICAgICBpZiByZXZwcm9wcyBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIGFsbF9yZXZwcm9wcy51cGRhdGUocmV2cHJvcHMpCisg
ICAgICAgIGlmIG5vdCAnYnJhbmNoLW5pY2snIGluIGFsbF9yZXZwcm9wczoKKyAgICAgICAgICAg
IGFsbF9yZXZwcm9wc1snYnJhbmNoLW5pY2snXSA9IHNlbGYuYnJhbmNoLm5pY2sKICAgICAgICAg
IyBhcmdzIGZvciB3dC5jb21taXQgc3RhcnQgYXQgbWVzc2FnZSBmcm9tIHRoZSBDb21taXQuY29t
bWl0IG1ldGhvZCwKICAgICAgICAgIyBidXQgd2l0aCBicmFuY2ggYSBrd2FyZyBub3csIHBhc3Np
bmcgaW4gYXJncyBhcyBpcyByZXN1bHRzIGluIHRoZQogICAgICAgICAjbWVzc2FnZSBiZWluZyB1
c2VkIGZvciB0aGUgYnJhbmNoCiAgICAgICAgIGFyZ3MgPSAoREVQUkVDQVRFRF9QQVJBTUVURVIs
IG1lc3NhZ2UsICkgKyBhcmdzCi0gICAgICAgIGNvbW1pdHRlZF9pZCA9IENvbW1pdCgpLmNvbW1p
dCggd29ya2luZ190cmVlPXNlbGYsIHJldnByb3BzPXJldnByb3BzLAotICAgICAgICAgICAgKmFy
Z3MsICoqa3dhcmdzKQorICAgICAgICBjb21taXR0ZWRfaWQgPSBDb21taXQoKS5jb21taXQoCisg
ICAgICAgICAgICB3b3JraW5nX3RyZWU9c2VsZiwgcmV2cHJvcHM9YWxsX3JldnByb3BzLCAqYXJn
cywgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYuX3NldF9pbnZlbnRvcnkoc2VsZi5yZWFkX3dvcmtp
bmdfaW52ZW50b3J5KCkpCiAgICAgICAgIHJldHVybiBjb21taXR0ZWRfaWQKIApAQCAtODM1LDgg
KzgzNiw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgUEVORElOR19SRVZQUk9QU19IRUFERVJf
MSkKIAogICAgIEBuZWVkc193cml0ZV9sb2NrCi0gICAgZGVmIHNldF9wZW5kaW5nX3JldnByb3Ao
c2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICAiIiJTZXQgYSByZXZpc2lvbiBwcm9wZXJ0eSBm
b3IgdGhlIG5leHQgY29tbWl0LiIiIgorICAgIGRlZiBhZGRfcGVuZGluZ19yZXZwcm9wKHNlbGYs
IG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiQWRkIGEgcmV2aXNpb24gcHJvcGVydHkgZm9yIHRo
ZSBuZXh0IGNvbW1pdC4iIiIKICAgICAgICAgcmV2cHJvcHMgPSBzZWxmLmdldF9wZW5kaW5nX3Jl
dnByb3BzKCkKICAgICAgICAgcmV2cHJvcHNbbmFtZV0gPSB2YWx1ZQogICAgICAgICBzZWxmLnNl
dF9wZW5kaW5nX3JldnByb3BzKHJldnByb3BzKQpAQCAtMTQ3MCw2ICsxNDcxLDcgQEAKICAgICAg
ICAgY29uZmxpY3RzID0gcmV2ZXJ0KHNlbGYsIG9sZF90cmVlLCBmaWxlbmFtZXMsIGJhY2t1cHMs
IHBiKQogICAgICAgICBpZiBub3QgbGVuKGZpbGVuYW1lcyk6CiAgICAgICAgICAgICBzZWxmLnNl
dF9wYXJlbnRfaWRzKHNlbGYuZ2V0X3BhcmVudF9pZHMoKVs6MV0pCisgICAgICAgICAgICBzZWxm
LnNldF9wZW5kaW5nX3JldnByb3BzKHt9KQogICAgICAgICAgICAgcmVzb2x2ZShzZWxmKQogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgcmVzb2x2ZShzZWxmLCBmaWxlbmFtZXMsIGlnbm9yZV9t
aXNzZXM9VHJ1ZSkKCg==

# revision id: james.henstridge at canonical.com-20060901093317-40a45b3d967a7fb2
# sha1: c7370b19aeb237c65d1d9a36c03cf0c204498ff2
# inventory sha1: afd6088ae4c7b592bfb67923c484e9e94f56e4a3
# parent ids:
#   james.henstridge at canonical.com-20060901075447-6b3fdff3eda4b7e9
# properties:
#   branch-nick: bzr.pending-revprops

# message:
#   add code to mange a list of pending revprops in the working tree
# committer: James Henstridge <james.henstridge at canonical.com>
# date: Fri 2006-09-01 15:54:47.914000034 +0800

=== modified file bzrlib/errors.py // encoding:base64
LS0tIGJ6cmxpYi9lcnJvcnMucHkKKysrIGJ6cmxpYi9lcnJvcnMucHkKQEAgLTEwMjIsNiArMTAy
MiwxMCBAQAogICAgICIiIkZvcm1hdCBlcnJvciBpbiBjb25mbGljdCBsaXN0aW5ncyIiIgogCiAK
K2NsYXNzIFBlbmRpbmdSZXZwcm9wRm9ybWF0RXJyb3IoQnpyTmV3RXJyb3IpOgorICAgICIiIkZv
cm1hdCBlcnJvciBpbiBwZW5kaW5nIHJldmlzaW9uIHByb3BlcnR5IGxpc3RpbmciIiIKKworCiBj
bGFzcyBDb3JydXB0UmVwb3NpdG9yeShCenJOZXdFcnJvcik6CiAgICAgIiIiQW4gZXJyb3IgaGFz
IGJlZW4gZGV0ZWN0ZWQgaW4gdGhlIHJlcG9zaXRvcnkgJShyZXBvX3BhdGgpcy4KIFBsZWFzZSBy
dW4gYnpyIHJlY29uY2lsZSBvbiB0aGlzIHJlcG9zaXRvcnkuIiIiCgo=

=== modified file bzrlib/workingtree.py // encoding:base64
LS0tIGJ6cmxpYi93b3JraW5ndHJlZS5weQorKysgYnpybGliL3dvcmtpbmd0cmVlLnB5CkBAIC0z
MSw2ICszMSw3IEBACiAKIE1FUkdFX01PRElGSUVEX0hFQURFUl8xID0gIkJaUiBtZXJnZS1tb2Rp
ZmllZCBsaXN0IGZvcm1hdCAxIgogQ09ORkxJQ1RfSEVBREVSXzEgPSAiQlpSIGNvbmZsaWN0IGxp
c3QgZm9ybWF0IDEiCitQRU5ESU5HX1JFVlBST1BTX0hFQURFUl8xID0gIkJaUiBwZW5kaW5nIHJl
dmlzaW9uIHByb3BlcnRpZXMgbGlzdCBmb3JtYXQgMSIKIAogIyBUT0RPOiBHaXZlIHRoZSB3b3Jr
aW5ndHJlZSBzb2xlIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUgd29ya2luZyBpbnZlbnRvcnk7CiAj
IHJlbW92ZSB0aGUgdmFyaWFibGUgYW5kIHJlZmVyZW5jZXMgdG8gaXQgZnJvbSB0aGUgYnJhbmNo
LiAgVGhpcyBtYXkgcmVxdWlyZQpAQCAtNjUsNiArNjYsNyBAQAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTm9TdWNoRmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdFZlcnNp
b25lZEVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVyZ2VNb2RpZmllZEZvcm1h
dEVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVuZGluZ1JldnByb3BGb3JtYXRF
cnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuc3VwcG9ydGVkT3BlcmF0aW9uLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogZnJvbSBienJsaWIuaW52ZW50b3J5IGltcG9y
dCBJbnZlbnRvcnlFbnRyeSwgSW52ZW50b3J5CkBAIC03OTYsNiArNzk4LDQ5IEBACiAgICAgICAg
ICAgICAgICAgbWVyZ2VfaGFzaGVzW2ZpbGVfaWRdID0gaGFzaAogICAgICAgICByZXR1cm4gbWVy
Z2VfaGFzaGVzCiAKKyAgICBAbmVlZHNfcmVhZF9sb2NrCisgICAgZGVmIGdldF9wZW5kaW5nX3Jl
dnByb3BzKHNlbGYpOgorICAgICAgICAiIiJHZXQgdGhlIGxpc3Qgb2YgcGVuZGluZyByZXZpc2lv
biBwcm9wZXJ0aWVzLgorCisgICAgICAgIFRoZXNlIHByb3BlcnRpZXMgd2lsbCBiZSBzZXQgYXMg
cmV2aXNpb24gcHJvcGVydGllcyBvbiB0aGUKKyAgICAgICAgbmV4dCBjb21taXQuCisgICAgICAg
ICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwcm9wZmlsZSA9IHNlbGYuX2NvbnRyb2xf
ZmlsZXMuZ2V0KCdwZW5kaW5nLXJldnByb3BzJykKKyAgICAgICAgZXhjZXB0IE5vU3VjaEZpbGU6
CisgICAgICAgICAgICByZXR1cm4ge30KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgcHJv
cGZpbGUubmV4dCgpICE9IFBFTkRJTkdfUkVWUFJPUFNfSEVBREVSXzEgKyAnXG4nOgorICAgICAg
ICAgICAgICAgIHJhaXNlIFBlbmRpbmdSZXZwcm9wc0Zvcm1hdEVycm9yKCkKKyAgICAgICAgZXhj
ZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICByYWlzZSBQZW5kaW5nUmV2cHJvcHNGb3Jt
YXRFcnJvcigpCisgICAgICAgIHJldnByb3BzID0ge30KKyAgICAgICAgZm9yIHMgaW4gUmlvUmVh
ZGVyKHByb3BmaWxlKToKKyAgICAgICAgICAgIG5hbWUgPSBzLmdldCgnbmFtZScpCisgICAgICAg
ICAgICB2YWx1ZSA9IHMuZ2V0KCd2YWx1ZScpCisgICAgICAgICAgICByZXZwcm9wc1tuYW1lXSA9
IHZhbHVlCisgICAgICAgIHJldHVybiByZXZwcm9wcworCisgICAgQG5lZWRzX3dyaXRlX2xvY2sK
KyAgICBkZWYgc2V0X3BlbmRpbmdfcmV2cHJvcHMoc2VsZiwgcmV2cHJvcHMpOgorICAgICAgICAi
IiJTZXQgdGhlIGxpc3Qgb2YgcGVuZGluZyByZXZpc2lvbiBwcm9wZXJ0aWVzLgorCisgICAgICAg
IFRoZXNlIHByb3BlcnRpZXMgd2lsbCBiZSBzZXQgYXMgcmV2aXNpb24gcHJvcGVydGllcyBvbiB0
aGUKKyAgICAgICAgbmV4dCBjb21taXQuCisgICAgICAgICIiIgorICAgICAgICBkZWYgaXRlcl9z
dGFuemFzKCk6CisgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gcmV2cHJvcHMuaXRlcml0
ZW1zKCk6CisgICAgICAgICAgICAgICAgeWllbGQgU3RhbnphKG5hbWU9bmFtZSwgdmFsdWU9dmFs
dWUpCisgICAgICAgIHNlbGYuX3B1dF9yaW8oJ3BlbmRpbmctcmV2cHJvcHMnLCBpdGVyX3N0YW56
YXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICBQRU5ESU5HX1JFVlBST1BTX0hFQURFUl8xKQor
CisgICAgQG5lZWRzX3dyaXRlX2xvY2sKKyAgICBkZWYgc2V0X3BlbmRpbmdfcmV2cHJvcChzZWxm
LCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICIiIlNldCBhIHJldmlzaW9uIHByb3BlcnR5IGZvciB0
aGUgbmV4dCBjb21taXQuIiIiCisgICAgICAgIHJldnByb3BzID0gc2VsZi5nZXRfcGVuZGluZ19y
ZXZwcm9wcygpCisgICAgICAgIHJldnByb3BzW25hbWVdID0gdmFsdWUKKyAgICAgICAgc2VsZi5z
ZXRfcGVuZGluZ19yZXZwcm9wcyhyZXZwcm9wcykKKwogICAgIGRlZiBnZXRfc3ltbGlua190YXJn
ZXQoc2VsZiwgZmlsZV9pZCk6CiAgICAgICAgIHJldHVybiBvcy5yZWFkbGluayhzZWxmLmlkMmFi
c3BhdGgoZmlsZV9pZCkpCiAKCg==

# revision id: james.henstridge at canonical.com-20060901075447-6b3fdff3eda4b7e9
# sha1: 7ad2fe38796ef07fe334e847ad76ca2ca8a3c725
# inventory sha1: 660a1c1d5cf21308e0d76e874db7ef31348e9196
# parent ids:
#   pqm at pqm.ubuntu.com-20060831182704-2de4cd234a448ed1
# properties:
#   branch-nick: bzr.pending-revprops


More information about the bazaar mailing list