Show More
@@ -968,42 +968,49 b' def creatediff(basectx, ctx):' | |||
|
968 | 968 | return diff |
|
969 | 969 | |
|
970 | 970 | |
|
971 | def writediffproperties(ctx, diff): | |
|
972 |
"""write metadata to diff so patches could be applied losslessly |
|
|
971 | def writediffproperties(ctxs, diff): | |
|
972 | """write metadata to diff so patches could be applied losslessly | |
|
973 | ||
|
974 | ``ctxs`` is the list of commits that created the diff, in ascending order. | |
|
975 | The list is generally a single commit, but may be several when using | |
|
976 | ``phabsend --fold``. | |
|
977 | """ | |
|
973 | 978 | # creatediff returns with a diffid but query returns with an id |
|
974 | 979 | diffid = diff.get(b'diffid', diff.get(b'id')) |
|
980 | basectx = ctxs[0] | |
|
981 | tipctx = ctxs[-1] | |
|
982 | ||
|
975 | 983 | params = { |
|
976 | 984 | b'diff_id': diffid, |
|
977 | 985 | b'name': b'hg:meta', |
|
978 | 986 | b'data': templatefilters.json( |
|
979 | 987 | { |
|
980 | b'user': ctx.user(), | |
|
981 | b'date': b'%d %d' % ctx.date(), | |
|
982 | b'branch': ctx.branch(), | |
|
983 | b'node': ctx.hex(), | |
|
984 | b'parent': ctx.p1().hex(), | |
|
988 | b'user': tipctx.user(), | |
|
989 | b'date': b'%d %d' % tipctx.date(), | |
|
990 | b'branch': tipctx.branch(), | |
|
991 | b'node': tipctx.hex(), | |
|
992 | b'parent': basectx.p1().hex(), | |
|
985 | 993 | } |
|
986 | 994 | ), |
|
987 | 995 | } |
|
988 | callconduit(ctx.repo().ui, b'differential.setdiffproperty', params) | |
|
996 | callconduit(basectx.repo().ui, b'differential.setdiffproperty', params) | |
|
989 | 997 | |
|
998 | commits = {} | |
|
999 | for ctx in ctxs: | |
|
1000 | commits[ctx.hex()] = { | |
|
1001 | b'author': stringutil.person(ctx.user()), | |
|
1002 | b'authorEmail': stringutil.email(ctx.user()), | |
|
1003 | b'time': int(ctx.date()[0]), | |
|
1004 | b'commit': ctx.hex(), | |
|
1005 | b'parents': [ctx.p1().hex()], | |
|
1006 | b'branch': ctx.branch(), | |
|
1007 | } | |
|
990 | 1008 | params = { |
|
991 | 1009 | b'diff_id': diffid, |
|
992 | 1010 | b'name': b'local:commits', |
|
993 | b'data': templatefilters.json( | |
|
994 | { | |
|
995 | ctx.hex(): { | |
|
996 | b'author': stringutil.person(ctx.user()), | |
|
997 | b'authorEmail': stringutil.email(ctx.user()), | |
|
998 | b'time': int(ctx.date()[0]), | |
|
999 | b'commit': ctx.hex(), | |
|
1000 | b'parents': [ctx.p1().hex()], | |
|
1001 | b'branch': ctx.branch(), | |
|
1002 | }, | |
|
1003 | } | |
|
1004 | ), | |
|
1011 | b'data': templatefilters.json(commits), | |
|
1005 | 1012 | } |
|
1006 | callconduit(ctx.repo().ui, b'differential.setdiffproperty', params) | |
|
1013 | callconduit(basectx.repo().ui, b'differential.setdiffproperty', params) | |
|
1007 | 1014 | |
|
1008 | 1015 | |
|
1009 | 1016 | def createdifferentialrevision( |
@@ -1049,7 +1056,7 b' def createdifferentialrevision(' | |||
|
1049 | 1056 | # pushers could know the correct node metadata. |
|
1050 | 1057 | assert olddiff |
|
1051 | 1058 | diff = olddiff |
|
1052 | writediffproperties(ctx, diff) | |
|
1059 | writediffproperties([ctx], diff) | |
|
1053 | 1060 | |
|
1054 | 1061 | # Set the parent Revision every time, so commit re-ordering is picked-up |
|
1055 | 1062 | if parentrevphid: |
@@ -1289,7 +1296,9 b' def phabsend(ui, repo, *revs, **opts):' | |||
|
1289 | 1296 | # If it fails just warn and keep going, otherwise the DREV |
|
1290 | 1297 | # associations will be lost |
|
1291 | 1298 | try: |
|
1292 |
writediffproperties( |
|
|
1299 | writediffproperties( | |
|
1300 | [unfi[newnode]], diffmap[old.node()] | |
|
1301 | ) | |
|
1293 | 1302 | except util.urlerr.urlerror: |
|
1294 | 1303 | ui.warnnoi18n( |
|
1295 | 1304 | b'Failed to update metadata for D%d\n' % drevid |
General Comments 0
You need to be logged in to leave comments.
Login now