/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 workingtree.py

  • Committer: Jelmer Vernooij
  • Date: 2018-03-04 20:28:19 UTC
  • mfrom: (0.200.1807 work)
  • mto: (0.200.1808 work)
  • mto: This revision was merged to the branch mainline in revision 6960.
  • Revision ID: jelmer@jelmer.uk-20180304202819-0dg57zuugpddt0ie
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
206
206
    def set_parent_trees(self, parents_list, allow_leftmost_as_ghost=False):
207
207
        self.set_parent_ids([p for p, t in parents_list])
208
208
 
209
 
    def _set_merges_from_parent_ids(self, parent_ids):
 
209
    def _set_merges_from_parent_ids(self, rhs_parent_ids):
210
210
        try:
211
 
            merges = [self.branch.lookup_bzr_revision_id(revid)[0] for revid in parent_ids[1:]]
 
211
            merges = [self.branch.lookup_bzr_revision_id(revid)[0] for revid in rhs_parent_ids]
212
212
        except errors.NoSuchRevision as e:
213
213
            raise errors.GhostRevisionUnusableHere(e.revision)
214
 
        self.control_transport.put_bytes('MERGE_HEAD', '\n'.join(merges),
215
 
            mode=self.controldir._get_file_mode())
 
214
        if merges:
 
215
            self.control_transport.put_bytes('MERGE_HEAD', '\n'.join(merges),
 
216
                mode=self.controldir._get_file_mode())
 
217
        else:
 
218
            try:
 
219
                self.control_transport.delete('MERGE_HEAD')
 
220
            except errors.NoSuchFile:
 
221
                pass
216
222
 
217
223
    def set_parent_ids(self, revision_ids, allow_leftmost_as_ghost=False):
218
224
        """Set the parent ids to revision_ids.
239
245
            else:
240
246
                self.set_last_revision(_mod_revision.NULL_REVISION)
241
247
 
242
 
            self._set_merges_from_parent_ids(revision_ids)
 
248
            self._set_merges_from_parent_ids(revision_ids[1:])
243
249
 
244
250
    def get_parent_ids(self):
245
251
        """See Tree.get_parent_ids.
747
753
        try:
748
754
            head = self.repository._git.head()
749
755
        except KeyError, name:
750
 
            raise errors.NotBranchError("branch %s at %s" % (name,
751
 
                self.repository.base))
752
 
        if head == ZERO_SHA:
753
756
            self._basis_fileid_map = GitFileIdMap({}, self.mapping)
754
757
        else:
755
 
            self._basis_fileid_map = self.mapping.get_fileid_map(
756
 
                self.store.__getitem__, self.store[head].tree)
 
758
            if head == ZERO_SHA:
 
759
                self._basis_fileid_map = GitFileIdMap({}, self.mapping)
 
760
            else:
 
761
                self._basis_fileid_map = self.mapping.get_fileid_map(
 
762
                    self.store.__getitem__, self.store[head].tree)
757
763
 
758
764
    def get_file_verifier(self, path, file_id=None, stat_value=None):
759
765
        with self.lock_read():
974
980
                specific_paths = []
975
981
                for file_id in specific_file_ids:
976
982
                    assert file_id is not None, "file id %r" % file_id
977
 
                    specific_paths.append(self.id2path(file_id))
 
983
                    try:
 
984
                        specific_paths.append(self.id2path(file_id))
 
985
                    except errors.NoSuchId:
 
986
                        pass
978
987
                if specific_paths in ([u""], []):
979
988
                    specific_paths = None
980
989
                else:
1099
1108
                self._versioned_dirs = None
1100
1109
            if new_path is not None and ie.kind != 'directory':
1101
1110
                self._index_add_entry(new_path, ie.kind)
 
1111
        self._set_merges_from_parent_ids([])
1102
1112
 
1103
1113
    def annotate_iter(self, path, file_id=None,
1104
1114
                      default_revision=_mod_revision.CURRENT_REVISION):
1187
1197
            raise errors.IncompatibleFormat(self, a_controldir)
1188
1198
        index = Index(a_controldir.root_transport.local_abspath(".git/index"))
1189
1199
        index.write()
 
1200
        branch = a_controldir.open_branch()
 
1201
        if revision_id is not None:
 
1202
            branch.set_last_revision(revision_id)
1190
1203
        wt = GitWorkingTree(
1191
 
                a_controldir, a_controldir.open_repository(),
1192
 
            a_controldir.open_branch(), index)
 
1204
                a_controldir, a_controldir.open_repository(), branch, index)
1193
1205
        for hook in MutableTree.hooks['post_build_tree']:
1194
1206
            hook(wt)
1195
1207
        return wt