~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to prepare_shelf.py

  • Committer: Aaron Bentley
  • Date: 2008-10-07 22:24:50 UTC
  • mfrom: (0.12.26 unshelve)
  • mto: This revision was merged to the branch mainline in revision 3823.
  • Revision ID: aaron@aaronbentley.com-20081007222450-1bcjlyffmuktxvv9
Merge with unshelve

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
from cStringIO import StringIO
19
19
 
20
 
from bzrlib import merge, merge3, pack, transform, ui
 
20
from bzrlib import errors, merge, merge3, pack, transform, ui
21
21
 
22
22
from bzrlib.plugins.shelf2 import serialize_transform
23
23
 
123
123
        try:
124
124
            serializer = pack.ContainerSerialiser()
125
125
            shelf_file.write(serializer.begin())
 
126
            shelf_file.write(serializer.bytes_record(
 
127
                self.target_tree.get_revision_id(), (('revision-id',),)))
126
128
            for bytes in serialize_transform.serialize(
127
129
                self.shelf_transform, serializer):
128
130
                shelf_file.write(bytes)
149
151
            shelf_file.close()
150
152
        tt = transform.TransformPreview(tree)
151
153
        records = iter(parser.read_pending_records())
 
154
        names, base_revision_id = records.next()
152
155
        serialize_transform.deserialize(tt, records)
153
 
        return klass(tree, tree.basis_tree(), tt)
 
156
        try:
 
157
            base_tree = tree.revision_tree(base_revision_id)
 
158
        except errors.NoSuchRevisionInTree:
 
159
            base_tree = tree.branch.repository.revision_tree(base_revision_id)
 
160
        return klass(tree, base_tree, tt)
154
161
 
155
162
    def unshelve(self):
156
163
        pb = ui.ui_factory.nested_progress_bar()