~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/versionedfile.py

Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
from bzrlib import (
28
28
    errors,
 
29
    osutils,
29
30
    tsort,
 
31
    revision,
30
32
    ui,
31
33
    )
32
34
from bzrlib.transport.memory import MemoryTransport
58
60
        self.finished = False
59
61
        self._access_mode = access_mode
60
62
 
 
63
    @staticmethod
 
64
    def check_not_reserved_id(version_id):
 
65
        revision.check_not_reserved_id(version_id)
 
66
 
61
67
    def copy_to(self, name, transport):
62
68
        """Copy this versioned file to name on transport."""
63
69
        raise NotImplementedError(self.copy_to)
91
97
        :param sha1: The sha1 of the full text.
92
98
        :param delta: The delta instructions. See get_delta for details.
93
99
        """
 
100
        version_id = osutils.safe_revision_id(version_id)
 
101
        parents = [osutils.safe_revision_id(v) for v in parents]
94
102
        self._check_write_ok()
95
103
        if self.has_version(version_id):
96
104
            raise errors.RevisionAlreadyPresent(version_id, self)
133
141
                 provided back to future add_lines calls in the parent_texts
134
142
                 dictionary.
135
143
        """
 
144
        version_id = osutils.safe_revision_id(version_id)
 
145
        parents = [osutils.safe_revision_id(v) for v in parents]
136
146
        self._check_write_ok()
137
147
        return self._add_lines(version_id, parents, lines, parent_texts)
138
148
 
146
156
        
147
157
        This takes the same parameters as add_lines.
148
158
        """
 
159
        version_id = osutils.safe_revision_id(version_id)
 
160
        parents = [osutils.safe_revision_id(v) for v in parents]
149
161
        self._check_write_ok()
150
162
        return self._add_lines_with_ghosts(version_id, parents, lines,
151
163
                                           parent_texts)
199
211
 
200
212
        Must raise RevisionAlreadyPresent if the new version is
201
213
        already present in file history."""
 
214
        new_version_id = osutils.safe_revision_id(new_version_id)
 
215
        old_version_id = osutils.safe_revision_id(old_version_id)
202
216
        self._check_write_ok()
203
217
        return self._clone_text(new_version_id, old_version_id, parents)
204
218
 
215
229
        """
216
230
        raise NotImplementedError(self.create_empty)
217
231
 
218
 
    def fix_parents(self, version, new_parents):
 
232
    def fix_parents(self, version_id, new_parents):
219
233
        """Fix the parents list for version.
220
234
        
221
235
        This is done by appending a new version to the index
223
237
        the parents list must be a superset of the current
224
238
        list.
225
239
        """
 
240
        version_id = osutils.safe_revision_id(version_id)
 
241
        new_parents = [osutils.safe_revision_id(p) for p in new_parents]
226
242
        self._check_write_ok()
227
 
        return self._fix_parents(version, new_parents)
 
243
        return self._fix_parents(version_id, new_parents)
228
244
 
229
 
    def _fix_parents(self, version, new_parents):
 
245
    def _fix_parents(self, version_id, new_parents):
230
246
        """Helper for fix_parents."""
231
247
        raise NotImplementedError(self.fix_parents)
232
248
 
238
254
        """
239
255
        raise NotImplementedError(self.get_delta)
240
256
 
241
 
    def get_deltas(self, versions):
 
257
    def get_deltas(self, version_ids):
242
258
        """Get multiple deltas at once for constructing versions.
243
259
        
244
260
        :return: dict(version_id:(delta_parent, sha1, noeol, delta))
246
262
        version_id is the version_id created by that delta.
247
263
        """
248
264
        result = {}
249
 
        for version in versions:
250
 
            result[version] = self.get_delta(version)
 
265
        for version_id in version_ids:
 
266
            result[version_id] = self.get_delta(version_id)
251
267
        return result
252
268
 
253
269
    def get_sha1(self, version_id):
320
336
            for version in self.versions():
321
337
                result[version] = self.get_parents(version)
322
338
        else:
323
 
            pending = set(version_ids)
 
339
            pending = set(osutils.safe_revision_id(v) for v in version_ids)
324
340
            while pending:
325
341
                version = pending.pop()
326
342
                if version in result:
652
668
            # None cannot be in source.versions
653
669
            return set(self.source.versions())
654
670
        else:
 
671
            version_ids = [osutils.safe_revision_id(v) for v in version_ids]
655
672
            if ignore_missing:
656
673
                return set(self.source.versions()).intersection(set(version_ids))
657
674
            else: