Show More
@@ -196,6 +196,8 b' def writediffproperties(ctx, diff):' | |||||
196 | 'data': json.dumps({ |
|
196 | 'data': json.dumps({ | |
197 | 'user': ctx.user(), |
|
197 | 'user': ctx.user(), | |
198 | 'date': '%d %d' % ctx.date(), |
|
198 | 'date': '%d %d' % ctx.date(), | |
|
199 | 'node': ctx.hex(), | |||
|
200 | 'parent': ctx.p1().hex(), | |||
199 | }), |
|
201 | }), | |
200 | } |
|
202 | } | |
201 | callconduit(ctx.repo(), 'differential.setdiffproperty', params) |
|
203 | callconduit(ctx.repo(), 'differential.setdiffproperty', params) | |
@@ -292,6 +294,11 b' def phabsend(ui, repo, *revs, **opts):' | |||||
292 |
|
294 | |||
293 | _summaryre = re.compile('^Summary:\s*', re.M) |
|
295 | _summaryre = re.compile('^Summary:\s*', re.M) | |
294 |
|
296 | |||
|
297 | # Map from "hg:meta" keys to header understood by "hg import". The order is | |||
|
298 | # consistent with "hg export" output. | |||
|
299 | _metanamemap = util.sortdict([(r'user', 'User'), (r'date', 'Date'), | |||
|
300 | (r'node', 'Node ID'), (r'parent', 'Parent ')]) | |||
|
301 | ||||
295 | def readpatch(repo, params, recursive=False): |
|
302 | def readpatch(repo, params, recursive=False): | |
296 | """generate plain-text patch readable by 'hg import' |
|
303 | """generate plain-text patch readable by 'hg import' | |
297 |
|
304 | |||
@@ -316,13 +323,16 b' def readpatch(repo, params, recursive=Fa' | |||||
316 | # Remove potential empty "Summary:" |
|
323 | # Remove potential empty "Summary:" | |
317 | desc = _summaryre.sub('', desc) |
|
324 | desc = _summaryre.sub('', desc) | |
318 |
|
325 | |||
319 |
# Try to preserve metadata |
|
326 | # Try to preserve metadata from hg:meta property. Write hg patch headers | |
|
327 | # that can be read by the "import" command. See patchheadermap and extract | |||
|
328 | # in mercurial/patch.py for supported headers. | |||
320 | diffs = callconduit(repo, 'differential.querydiffs', {'ids': [diffid]}) |
|
329 | diffs = callconduit(repo, 'differential.querydiffs', {'ids': [diffid]}) | |
321 | props = diffs[str(diffid)][r'properties'] # could be empty list or dict |
|
330 | props = diffs[str(diffid)][r'properties'] # could be empty list or dict | |
322 | if props and r'hg:meta' in props: |
|
331 | if props and r'hg:meta' in props: | |
323 | meta = props[r'hg:meta'] |
|
332 | meta = props[r'hg:meta'] | |
324 |
for k |
|
333 | for k in _metanamemap.keys(): | |
325 | header += '# %s %s\n' % (k.capitalize(), v) |
|
334 | if k in meta: | |
|
335 | header += '# %s %s\n' % (_metanamemap[k], meta[k]) | |||
326 |
|
336 | |||
327 | patch = ('%s%s\n%s') % (header, desc, body) |
|
337 | patch = ('%s%s\n%s') % (header, desc, body) | |
328 |
|
338 |
General Comments 0
You need to be logged in to leave comments.
Login now