Show More
@@ -946,17 +946,7 b' def changegroupsubset(repo, roots, heads' | |||
|
946 | 946 | Another wrinkle is doing the reverse, figuring out which changeset in |
|
947 | 947 | the changegroup a particular filenode or manifestnode belongs to. |
|
948 | 948 | """ |
|
949 | cl = repo.changelog | |
|
950 | if not roots: | |
|
951 | roots = [nullid] | |
|
952 | discbases = [] | |
|
953 | for n in roots: | |
|
954 | discbases.extend([p for p in cl.parents(n) if p != nullid]) | |
|
955 | # TODO: remove call to nodesbetween. | |
|
956 | csets, roots, heads = cl.nodesbetween(roots, heads) | |
|
957 | included = set(csets) | |
|
958 | discbases = [n for n in discbases if n not in included] | |
|
959 | outgoing = discovery.outgoing(cl, discbases, heads) | |
|
949 | outgoing = discovery.outgoingbetween(repo, roots, heads) | |
|
960 | 950 | bundler = getbundler(version, repo) |
|
961 | 951 | return getsubset(repo, outgoing, bundler, source) |
|
962 | 952 |
@@ -101,6 +101,27 b' class outgoing(object):' | |||
|
101 | 101 | self._computecommonmissing() |
|
102 | 102 | return self._missing |
|
103 | 103 | |
|
104 | def outgoingbetween(repo, roots, heads): | |
|
105 | """create an ``outgoing`` consisting of nodes between roots and heads | |
|
106 | ||
|
107 | The ``missing`` nodes will be descendants of any of the ``roots`` and | |
|
108 | ancestors of any of the ``heads``, both are which are defined as a list | |
|
109 | of binary nodes. | |
|
110 | """ | |
|
111 | cl = repo.changelog | |
|
112 | if not roots: | |
|
113 | roots = [nullid] | |
|
114 | discbases = [] | |
|
115 | for n in roots: | |
|
116 | discbases.extend([p for p in cl.parents(n) if p != nullid]) | |
|
117 | # TODO remove call to nodesbetween. | |
|
118 | # TODO populate attributes on outgoing instance instead of setting | |
|
119 | # discbases. | |
|
120 | csets, roots, heads = cl.nodesbetween(roots, heads) | |
|
121 | included = set(csets) | |
|
122 | discbases = [n for n in discbases if n not in included] | |
|
123 | return outgoing(cl, discbases, heads) | |
|
124 | ||
|
104 | 125 | def findcommonoutgoing(repo, other, onlyheads=None, force=False, |
|
105 | 126 | commoninc=None, portable=False): |
|
106 | 127 | '''Return an outgoing instance to identify the nodes present in repo but |
General Comments 0
You need to be logged in to leave comments.
Login now