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

  • Committer: Jelmer Vernooij
  • Date: 2018-05-06 11:48:54 UTC
  • mto: This revision was merged to the branch mainline in revision 6960.
  • Revision ID: jelmer@jelmer.uk-20180506114854-h4qd9ojaqy8wxjsd
Move .mailmap to root.

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
    def _save(self):
50
50
        """Save the current revision."""
51
51
        self._controldir.control_transport.put_bytes(
52
 
            self._filename, self._revid + b"\n")
 
52
            self._filename, self._revid + "\n")
53
53
 
54
54
    def get_current_revid(self):
55
55
        """Return the current revision id."""
57
57
 
58
58
    def get_current_revno(self):
59
59
        """Return the current revision number as a tuple."""
60
 
        return self._branch.revision_id_to_dotted_revno(self._revid)
 
60
        revdict = self._branch.get_revision_id_to_revno_map()
 
61
        return revdict[self.get_current_revid()]
61
62
 
62
63
    def get_parent_revids(self):
63
64
        """Return the IDs of the current revision's predecessors."""
125
126
        if not self._branch:
126
127
            self._branch = self._controldir.open_branch()
127
128
 
128
 
    def _find_range_and_middle(self, branch_last_rev=None):
 
129
    def _find_range_and_middle(self, branch_last_rev = None):
129
130
        """Find the current revision range, and the midpoint."""
130
131
        self._load_tree()
131
132
        self._middle_revid = None
138
139
        repo = self._branch.repository
139
140
        with repo.lock_read():
140
141
            graph = repo.get_graph()
141
 
            rev_sequence = graph.iter_lefthand_ancestry(
142
 
                last_revid, (_mod_revision.NULL_REVISION,))
 
142
            rev_sequence = graph.iter_lefthand_ancestry(last_revid,
 
143
                (_mod_revision.NULL_REVISION,))
143
144
            high_revid = None
144
145
            low_revid = None
145
146
            between_revs = []
172
173
        if spread < 2:
173
174
            middle_index = 0
174
175
        else:
175
 
            middle_index = (spread // 2) - 1
 
176
            middle_index = (spread / 2) - 1
176
177
 
177
178
        if len(between_revs) > 0:
178
179
            self._middle_revid = between_revs[middle_index]
206
207
            revlog = self._open_for_read()
207
208
            for line in revlog:
208
209
                (revid, status) = line.split()
209
 
                self._items.append((revid, status.decode('ascii')))
 
210
                self._items.append((revid, status))
210
211
 
211
212
    def save(self):
212
213
        """Save the bisection log."""
213
 
        contents = b''.join(
214
 
            (b"%s %s\n" % (revid, status.encode('ascii')))
 
214
        contents = ''.join(
 
215
            ("%s %s\n" % (revid, status))
215
216
            for (revid, status) in self._items)
216
217
        if self._filename:
217
218
            self._controldir.control_transport.put_bytes(
247
248
        self._find_range_and_middle()
248
249
        # If we've found the "final" revision, check for a
249
250
        # merge point.
250
 
        while ((self._middle_revid == self._high_revid or
251
 
                self._middle_revid == self._low_revid) and
252
 
                self.is_merge_point(self._middle_revid)):
 
251
        while ((self._middle_revid == self._high_revid
 
252
                or self._middle_revid == self._low_revid)
 
253
                and self.is_merge_point(self._middle_revid)):
253
254
            for parent in self.get_parent_revids(self._middle_revid):
254
255
                if parent == self._low_revid:
255
256
                    continue
340
341
        bisect_log.save()
341
342
        return False
342
343
 
343
 
    def run(self, subcommand, args_list, directory='.', revision=None,
344
 
            output=None):
 
344
    def run(self, subcommand, args_list, directory='.', revision=None, output=None):
345
345
        """Handle the bisect command."""
346
346
 
347
347
        log_fn = None
402
402
        self._set_state(controldir, revspec, "yes")
403
403
 
404
404
    def no(self, controldir, revspec):
405
 
        """Mark a given revision as wrong."""
 
405
        """Mark that a given revision does not have the state we're looking for."""
406
406
        self._set_state(controldir, revspec, "no")
407
407
 
408
408
    def move(self, controldir, revspec):