Show More
@@ -135,7 +135,9 b' def getrepophid(repo):' | |||||
135 | repo.ui.setconfig('phabricator', 'repophid', repophid) |
|
135 | repo.ui.setconfig('phabricator', 'repophid', repophid) | |
136 | return repophid |
|
136 | return repophid | |
137 |
|
137 | |||
138 | _differentialrevisionre = re.compile('\AD([1-9][0-9]*)\Z') |
|
138 | _differentialrevisiontagre = re.compile('\AD([1-9][0-9]*)\Z') | |
|
139 | _differentialrevisiondescre = re.compile( | |||
|
140 | '^Differential Revision:.*D([1-9][0-9]*)$', re.M) | |||
139 |
|
141 | |||
140 | def getmapping(ctx): |
|
142 | def getmapping(ctx): | |
141 | """return (node, associated Differential Revision ID) or (None, None) |
|
143 | """return (node, associated Differential Revision ID) or (None, None) | |
@@ -143,15 +145,26 b' def getmapping(ctx):' | |||||
143 | Examines all precursors and their tags. Tags with format like "D1234" are |
|
145 | Examines all precursors and their tags. Tags with format like "D1234" are | |
144 | considered a match and the node with that tag, and the number after "D" |
|
146 | considered a match and the node with that tag, and the number after "D" | |
145 | (ex. 1234) will be returned. |
|
147 | (ex. 1234) will be returned. | |
|
148 | ||||
|
149 | If tags are not found, examine commit message. The "Differential Revision:" | |||
|
150 | line could associate this changeset to a Differential Revision. | |||
146 | """ |
|
151 | """ | |
147 | unfi = ctx.repo().unfiltered() |
|
152 | unfi = ctx.repo().unfiltered() | |
148 | nodemap = unfi.changelog.nodemap |
|
153 | nodemap = unfi.changelog.nodemap | |
|
154 | ||||
|
155 | # Check tags like "D123" | |||
149 | for n in obsolete.allprecursors(unfi.obsstore, [ctx.node()]): |
|
156 | for n in obsolete.allprecursors(unfi.obsstore, [ctx.node()]): | |
150 | if n in nodemap: |
|
157 | if n in nodemap: | |
151 | for tag in unfi.nodetags(n): |
|
158 | for tag in unfi.nodetags(n): | |
152 | m = _differentialrevisionre.match(tag) |
|
159 | m = _differentialrevisiontagre.match(tag) | |
153 | if m: |
|
160 | if m: | |
154 | return n, int(m.group(1)) |
|
161 | return n, int(m.group(1)) | |
|
162 | ||||
|
163 | # Check commit message | |||
|
164 | m = _differentialrevisiondescre.search(ctx.description()) | |||
|
165 | if m: | |||
|
166 | return None, int(m.group(1)) | |||
|
167 | ||||
155 | return None, None |
|
168 | return None, None | |
156 |
|
169 | |||
157 | def getdiff(ctx, diffopts): |
|
170 | def getdiff(ctx, diffopts): |
General Comments 0
You need to be logged in to leave comments.
Login now