diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py --- a/mercurial/debugcommands.py +++ b/mercurial/debugcommands.py @@ -2016,6 +2016,7 @@ b'")}' b'{extras % " extra: {key} = {value}\n"}' b'"}' + b'{extras % "extra: {file} ({key} = {value})\n"}' ) ms = mergestatemod.mergestate.read(repo) @@ -2069,6 +2070,18 @@ fm_files.end() + fm_extras = fm.nested(b'extras') + for f, d in sorted(ms._stateextras.iteritems()): + if f in ms: + # If file is in mergestate, we have already processed it's extras + continue + for k, v in d.iteritems(): + fm_extras.startitem() + fm_extras.data(file=f) + fm_extras.data(key=k) + fm_extras.data(value=v) + fm_extras.end() + fm.end() diff --git a/tests/test-resolve.t b/tests/test-resolve.t --- a/tests/test-resolve.t +++ b/tests/test-resolve.t @@ -328,6 +328,7 @@ [ { "commits": [{"label": "working copy", "name": "local", "node": "57653b9f834a4493f7240b0681efcb9ae7cab745"}, {"label": "merge rev", "name": "other", "node": "dc77451844e37f03f5c559e3b8529b2b48d381d1"}], + "extras": [], "files": [{"ancestor_node": "2ed2a3912a0b24502043eae84ee4b279c18b90dd", "ancestor_path": "file1", "extras": [{"key": "ancestorlinknode", "value": "99726c03216e233810a2564cbc0adfe395007eac"}], "local_flags": "", "local_key": "60b27f004e454aca81b0480209cce5081ec52390", "local_path": "file1", "other_node": "6f4310b00b9a147241b071a60c28a650827fb03d", "other_path": "file1", "path": "file1", "state": "r"}, {"ancestor_node": "2ed2a3912a0b24502043eae84ee4b279c18b90dd", "ancestor_path": "file2", "extras": [{"key": "ancestorlinknode", "value": "99726c03216e233810a2564cbc0adfe395007eac"}], "local_flags": "", "local_key": "cb99b709a1978bd205ab9dfd4c5aaa1fc91c7523", "local_path": "file2", "other_node": "6f4310b00b9a147241b071a60c28a650827fb03d", "other_path": "file2", "path": "file2", "state": "u"}] } ]