~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/store.py

merge from abentley

Show diffs side-by-side

added added

removed removed

Lines of Context:
126
126
        if isinstance(other, ImmutableStore):
127
127
            return self.copy_multi_immutable(other, to_copy, pb)
128
128
        count = 0
 
129
        failed = set()
129
130
        for id in to_copy:
130
131
            count += 1
131
132
            pb.update('copy', count, len(to_copy))
135
136
                try:
136
137
                    entry = other[id]
137
138
                except IndexError:
138
 
                    failures.add(id)
 
139
                    failed.add(id)
139
140
                    continue
140
141
                self.add(entry, id)
141
142
                
142
 
        assert count == len(to_copy)
 
143
        if not permit_failure:
 
144
            assert count == len(to_copy)
143
145
        pb.clear()
144
 
        return count, []
 
146
        return count, failed
145
147
 
146
148
    def copy_multi_immutable(self, other, to_copy, pb, permit_failure=False):
147
149
        from shutil import copyfile