17
17
"""Display what revisions are missing in 'other' from 'this' and vice versa."""
19
from __future__ import absolute_import
22
import bzrlib.revision as _mod_revision
25
def iter_log_revisions(revisions, revision_source, verbose):
24
from . import revision as _mod_revision
27
def iter_log_revisions(revisions, revision_source, verbose, rev_tag_dict=None):
26
28
last_tree = revision_source.revision_tree(_mod_revision.NULL_REVISION)
29
# We need the following for backward compatibilty (hopefully
30
# this will be deprecated soon :-/) -- vila 080911
35
revno, rev_id, merge_depth = rev
31
if rev_tag_dict is None:
33
for revno, rev_id, merge_depth in revisions:
36
34
rev = revision_source.get_revision(rev_id)
38
36
delta = revision_source.get_revision_delta(rev_id)
41
yield log.LogRevision(rev, revno, merge_depth, delta=delta)
39
yield log.LogRevision(rev, revno, merge_depth, delta=delta,
40
tags=rev_tag_dict.get(rev_id))
44
43
def find_unmerged(local_branch, remote_branch, restrict='all',
45
include_merges=False, backward=False,
44
include_merged=None, backward=False,
46
45
local_revid_range=None, remote_revid_range=None):
47
46
"""Find revisions from each side that have not been merged.
53
52
unique revisions from both sides. If 'local', we will return None
54
53
for the remote revisions, similarly if 'remote' we will return None for
55
54
the local revisions.
56
:param include_merges: Show mainline revisions only if False,
55
:param include_merged: Show mainline revisions only if False,
57
56
all revisions otherwise.
58
57
:param backward: Show oldest versions first when True, newest versions
65
64
:return: A list of [(revno, revision_id)] for the mainline revisions on
67
if include_merged is None:
68
include_merged = False
68
69
local_branch.lock_read()
70
71
remote_branch.lock_read()
72
73
return _find_unmerged(
73
74
local_branch, remote_branch, restrict=restrict,
74
include_merges=include_merges, backward=backward,
75
include_merged=include_merged, backward=backward,
75
76
local_revid_range=local_revid_range,
76
77
remote_revid_range=remote_revid_range)
89
90
:param tip: The tip of mainline
90
91
:param backward: Show oldest versions first when True, newest versions
92
:return: [(revno, revision_id)] for all revisions in ancestry that
93
:return: [(revno, revision_id, 0)] for all revisions in ancestry that
93
94
are left-hand parents from tip, or None if ancestry is None.
95
96
if ancestry is None:
109
110
parents = parent_map.get(cur)
111
112
break # Ghost, we are done
112
mainline.append((str(cur_revno), cur))
113
mainline.append((str(cur_revno), cur, 0))
162
163
def _find_unmerged(local_branch, remote_branch, restrict,
163
include_merges, backward,
164
include_merged, backward,
164
165
local_revid_range=None, remote_revid_range=None):
165
166
"""See find_unmerged.
186
187
' "remote": %r' % (restrict,))
187
188
local_extra, remote_extra = graph.find_difference(local_revision_id,
188
189
remote_revision_id)
190
191
locals = _enumerate_with_merges(local_branch, local_extra,
191
192
graph, local_revno,
192
193
local_revision_id, backward)
207
208
def sorted_revisions(revisions, history_map):
208
revisions = [(history_map[r],r) for r in revisions]
209
revisions = sorted([(history_map[r], r) for r in revisions])