/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/transform.py

  • Committer: Jelmer Vernooij
  • Date: 2020-07-03 01:18:21 UTC
  • mto: (7490.40.48 work)
  • mto: This revision was merged to the branch mainline in revision 7519.
  • Revision ID: jelmer@jelmer.uk-20200703011821-zegwt9vb1o57u16x
Move out some file id handling functions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
401
401
 
402
402
    def version_file(self, trans_id, file_id=None):
403
403
        """Schedule a file to become versioned."""
404
 
        if file_id is None:
405
 
            raise ValueError()
406
 
        unique_add(self._new_id, trans_id, file_id)
407
 
        unique_add(self._r_new_id, file_id, trans_id)
 
404
        raise NotImplementedError(self.version_file)
408
405
 
409
406
    def cancel_versioning(self, trans_id):
410
407
        """Undo a previous versioning of a file"""
411
 
        file_id = self._new_id[trans_id]
412
 
        del self._new_id[trans_id]
413
 
        del self._r_new_id[file_id]
 
408
        raise NotImplementedError(self.cancel_versioning)
414
409
 
415
410
    def new_paths(self, filesystem_only=False):
416
411
        """Determine the paths of all new and changed files.
540
535
        conflicts.extend(self._unversioned_parents(by_parent))
541
536
        conflicts.extend(self._parent_loops())
542
537
        conflicts.extend(self._duplicate_entries(by_parent))
543
 
        conflicts.extend(self._duplicate_ids())
544
538
        conflicts.extend(self._parent_type_conflicts(by_parent))
545
539
        conflicts.extend(self._improper_versioning())
546
540
        conflicts.extend(self._executability_conflicts())
723
717
                last_trans_id = trans_id
724
718
        return conflicts
725
719
 
726
 
    def _duplicate_ids(self):
727
 
        """Each inventory id may only be used once"""
728
 
        conflicts = []
729
 
        try:
730
 
            all_ids = self._tree.all_file_ids()
731
 
        except errors.UnsupportedOperation:
732
 
            # it's okay for non-file-id trees to raise UnsupportedOperation.
733
 
            return []
734
 
        removed_tree_ids = set((self.tree_file_id(trans_id) for trans_id in
735
 
                                self._removed_id))
736
 
        active_tree_ids = all_ids.difference(removed_tree_ids)
737
 
        for trans_id, file_id in viewitems(self._new_id):
738
 
            if file_id in active_tree_ids:
739
 
                path = self._tree.id2path(file_id)
740
 
                old_trans_id = self.trans_id_tree_path(path)
741
 
                conflicts.append(('duplicate id', old_trans_id, trans_id))
742
 
        return conflicts
743
 
 
744
720
    def _parent_type_conflicts(self, by_parent):
745
721
        """Children must have a directory parent"""
746
722
        conflicts = []