##// END OF EJS Templates
exchange: backout changeset c26335fa4225...
exchange: backout changeset c26335fa4225 Changeset c26335fa4225 has good intends but introduce significant behavior regressions for multiple important cases. In short there are many case where push would have caught instability creation/propagation that are no longer covered. These behavior have been covered for many years and even if some related case are not currently caught, the covered one should not be regressed. The next four changesets introduce tests for some of these cases. However we could produce many more tests cases since the area is wide and they are many possible combination. (And we should cover them when getting back to this issue) Since 5.5 is one week away, the most reasonable approach seems to back this out while we devise a new way to move forward that preserve the current behavior, catch more issues and also improves the situation that c26335fa4225 target. In addition to the behavior change, c26335fa4225 also introduced output changes. These output changes does not requires a backout per-se, but are part of the same changeset. However they come with a couple of issues that also requires attention: 1) the bulk of the error message have been shoehorned into a multiple line abort message. This seems quite different from what we usually do. The abort message should be a compact and efficient message, with extra details being issued as normal error output beforehand. (with --verbose/--quiet) support. 2) the current output is unbounded, so if there is many (tens, hundreds, thousands, …) of unstable/obsolete changeset involved in the push, the output can quickly become a scary and un-usuable wall of text. So we need some limitation here (same as we have with the remote head list that says A, B , C and # others).

File last commit:

r44117:d155bf11 default
r45782:6063c185 stable
Show More
map
251 lines | 6.6 KiB | text/plain | TextLexer
Yuya Nishihara
hgweb: show shortlog by default in json output (issue5978)
r39504 default = 'shortlog'
Gregory Szorc
templates: add a stub template for json...
r24544 mimetype = 'application/json'
Yuya Nishihara
hgweb: show shortlog by default in json output (issue5978)
r39504
Laura Médioni
templates: add support for filerevision webcommand in json style
r29381 filerevision = '\{
"node": {node|json},
"path": {file|json},
"date": {date|json},
"desc": {desc|utf8|json},
"branch": {if(branch, branch%changesetbranch, "default"|json)},
"bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
"tags": [{join(tags%changelistentryname, ", ")}],
"user": {author|utf8|json},
"parents": [{join(parent%changesetparent, ", ")}],
"phase": {phase|json},
"lines": [{join(text%lineentry, ", ")}]
}'
lineentry = '\{
"line": {line|json}
}'
Laura Médioni
templates: add support for search webcommand in json style
r29383 search = '\{
"node": {node|json},
"query": {query|json},
Yuya Nishihara
hgweb: fix search {entries} to not return results of template expansion...
r37418 "entries": [{join(entries%changelistentry, ", ")}]
Laura Médioni
templates: add support for search webcommand in json style
r29383 }'
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 # changelog and shortlog are the same web API but with different
# number of entries.
changelog = changelist.tmpl
shortlog = changelist.tmpl
av6
hgweb: implement json-graph...
r35390 graph = graph.tmpl
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 changelistentry = '\{
"node": {node|json},
"date": {date|json},
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "desc": {desc|utf8|json},
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "branch": {if(branch, branch%changesetbranch, "default"|json)},
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
"tags": [{join(tags%changelistentryname, ", ")}],
av6
hgweb: add parents to json-log (issue5074)...
r28709 "user": {author|utf8|json},
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 "phase": {phase|json},
"parents": [{if(allparents, join(allparents%changesetparent, ", "),
join(parent%changesetparent, ", "))}]
Gregory Szorc
json: implement {shortlog} and {changelog} templates...
r24588 }'
av6
hgweb: implement json-graph...
r35390 graphentry = '\{
"node": {node|json},
"date": {date|json},
"desc": {desc|utf8|json},
"branch": {if(branch, branch%changesetbranch, "default"|json)},
"bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
"tags": [{join(tags%changelistentryname, ", ")}],
"user": {author|utf8|json},
"phase": {phase|json},
"col": {col|json},
"row": {row|json},
"color": {color|json},
"edges": {edges|json},
"parents": [{if(allparents, join(allparents%changesetparent, ", "),
join(parent%changesetparent, ", "))}]
}'
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 changelistentryname = '{name|utf8|json}'
Gregory Szorc
json: implement {changeset} template...
r24563 changeset = '\{
"node": {node|json},
"date": {date|json},
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "desc": {desc|utf8|json},
Gregory Szorc
json: implement {changeset} template...
r24563 "branch": {if(branch, branch%changesetbranch, "default"|json)},
"bookmarks": [{join(changesetbookmark, ", ")}],
"tags": [{join(changesettag, ", ")}],
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "user": {author|utf8|json},
Gregory Szorc
hgweb: add phase to {changeset} template...
r24564 "parents": [{join(parent%changesetparent, ", ")}],
Jordi Gutiérrez Hermoso
hgweb: add files to the json changeset template...
r44116 "files": [{join(files, ", ")}],
Jordi Gutiérrez Hermoso
hgweb: add diffs to the json changeset template...
r44117 "diff": [{join(diff, ", ")}],
Gregory Szorc
hgweb: add phase to {changeset} template...
r24564 "phase": {phase|json}
Gregory Szorc
json: implement {changeset} template...
r24563 }'
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 changesetbranch = '{name|utf8|json}'
changesetbookmark = '{bookmark|utf8|json}'
changesettag = '{tag|utf8|json}'
Gregory Szorc
json: implement {changeset} template...
r24563 changesetparent = '{node|json}'
Gregory Szorc
json: implement {manifest} template...
r24589 manifest = '\{
"node": {node|json},
"abspath": {path|json},
"directories": [{join(dentries%direntry, ", ")}],
"files": [{join(fentries%fileentry, ", ")}],
"bookmarks": [{join(bookmarks%name, ", ")}],
"tags": [{join(tags%name, ", ")}]
}'
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 name = '{name|utf8|json}'
Gregory Szorc
json: implement {manifest} template...
r24589 direntry = '\{
"abspath": {path|json},
"basename": {basename|json},
"emptydirs": {emptydirs|json}
}'
fileentry = '\{
"abspath": {file|json},
"basename": {basename|json},
"date": {date|json},
"size": {size|json},
"flags": {permissions|json}
}'
Gregory Szorc
json: implement {tags} template...
r24545 tags = '\{
"node": {node|json},
"tags": [{join(entriesnotip%tagentry, ", ")}]
}'
tagentry = '\{
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "tag": {tag|utf8|json},
Gregory Szorc
json: implement {tags} template...
r24545 "node": {node|json},
"date": {date|json}
}'
Gregory Szorc
json: implement {bookmarks} template
r24546 bookmarks = '\{
"node": {node|json},
"bookmarks": [{join(entries%bookmarkentry, ", ")}]
}'
bookmarkentry = '\{
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "bookmark": {bookmark|utf8|json},
Gregory Szorc
json: implement {bookmarks} template
r24546 "node": {node|json},
"date": {date|json}
}'
Gregory Szorc
json: implement {branches} template
r24547 branches = '\{
"branches": [{join(entries%branchentry, ", ")}]
}'
branchentry = '\{
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "branch": {branch|utf8|json},
Gregory Szorc
json: implement {branches} template
r24547 "node": {node|json},
"date": {date|json},
"status": {status|json}
}'
Laura Médioni
templates: add support for summary webcommand in json style...
r29382 shortlogentry = '{changelistentry}'
summary = '\{
"node": {node|json},
"lastchange": {lastchange|json},
"bookmarks": [{join(bookmarks%bookmarkentry, ", ")}],
"branches": [{join(branches%branchentry, ", ")}],
"shortlog": [{join(shortlog%shortlogentry, ", ")}],
"tags": [{join(tags%tagentry, ", ")}],
Gregory Szorc
hgweb: expose list of per-repo labels to templates...
r29471 "archives": [{join(archives%archiveentry, ", ")}],
"labels": {labels|json}
Laura Médioni
templates: add support for summary webcommand in json style...
r29382 }'
archiveentry = '\{
"node": {node|json},
"extension": {extension|json},
av6
hgweb: add absolute urls for archives in json-summary
r29458 "type": {type|json},
"url": {"{urlbase}{url}archive/{node}{extension}"|json}
Laura Médioni
templates: add support for summary webcommand in json style...
r29382 }'
Gregory Szorc
json: implement {filediff} template...
r24713 filediff = '\{
"path": {file|json},
"node": {node|json},
"date": {date|json},
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "desc": {desc|utf8|json},
"author": {author|utf8|json},
Gregory Szorc
json: implement {filediff} template...
r24713 "parents": [{join(parent%changesetparent, ", ")}],
"children": [{join(child%changesetparent, ", ")}],
Yuya Nishihara
hgweb: fix {diff} expansion in JSON template...
r37420 "diff": [{join(diff, ", ")}]
Gregory Szorc
json: implement {filediff} template...
r24713 }'
diffblock = '\{
"blockno": {blockno|json},
"lines": [{join(lines, ", ")}]
}'
difflineplus = '\{
"t": "+",
"n": {lineno|json},
"l": {line|json}
}'
difflineminus = '\{
"t": "-",
"n": {lineno|json},
"l": {line|json}
}'
difflineat = '\{
"t": "@",
"n": {lineno|json},
"l": {line|json}
}'
diffline = '\{
"t": "",
"n": {lineno|json},
"l": {line|json}
}'
Gregory Szorc
json: implement {comparison} template...
r24714 filecomparison = '\{
"path": {file|json},
"node": {node|json},
"date": {date|json},
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "desc": {desc|utf8|json},
"author": {author|utf8|json},
Gregory Szorc
json: implement {comparison} template...
r24714 "parents": [{join(parent%changesetparent, ", ")}],
"children": [{join(child%changesetparent, ", ")}],
"leftnode": {leftnode|json},
"rightnode": {rightnode|json},
"comparison": [{join(comparison, ", ")}]
}'
comparisonblock = '\{
"lines": [{join(lines, ", ")}]
}'
comparisonline = '\{
"t": {type|json},
"ln": {leftlineno|json},
"ll": {leftline|json},
"rn": {rightlineno|json},
"rl": {rightline|json}
}'
Gregory Szorc
json: implement {fileannotate} template
r24715 fileannotate = '\{
"abspath": {file|json},
"node": {node|json},
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "author": {author|utf8|json},
Gregory Szorc
json: implement {fileannotate} template
r24715 "date": {date|json},
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "desc": {desc|utf8|json},
Gregory Szorc
json: implement {fileannotate} template
r24715 "parents": [{join(parent%changesetparent, ", ")}],
"children": [{join(child%changesetparent, ", ")}],
"permissions": {permissions|json},
"annotate": [{join(annotate%fileannotation, ", ")}]
}'
fileannotation = '\{
"node": {node|json},
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "author": {author|utf8|json},
"desc": {desc|utf8|json},
Gregory Szorc
json: implement {fileannotate} template
r24715 "abspath": {file|json},
"targetline": {targetline|json},
"line": {line|json},
"lineno": {lineno|json},
"revdate": {revdate|json}
}'
Laura Médioni
templates: add support for filelog webcommand in json style...
r29380 filelog = '\{
"entries": [{join(entries%changelistentry, ", ")}]
}'
Gregory Szorc
json: implement {helptopics} template
r24590 helptopics = '\{
"topics": [{join(topics%helptopicentry, ", ")}],
"earlycommands": [{join(earlycommands%helptopicentry, ", ")}],
"othercommands": [{join(othercommands%helptopicentry, ", ")}]
}'
helptopicentry = '\{
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "topic": {topic|utf8|json},
"summary": {summary|utf8|json}
Gregory Szorc
json: implement {helptopics} template
r24590 }'
Gregory Szorc
json: implement {help} template...
r24591 help = '\{
Yuya Nishihara
templatefilters: make json filter be byte-transparent (BC) (issue4926)...
r28212 "topic": {topic|utf8|json},
"rawdoc": {doc|utf8|json}
Gregory Szorc
json: implement {help} template...
r24591 }'
Jordi Gutiérrez Hermoso
hgweb: add files to the json changeset template...
r44116 filenodelink = '\{
"file": {file|json},
"status": {status|json}
}'
filenolink = '{filenodelink}'
av6
hgweb: add index template to json/map...
r28268 index = '\{
"entries": [{join(entries%indexentry, ", ")}]
}'
indexentry = '\{
"name": {name|utf8|json},
"description": {description|utf8|json},
"contact": {contact|utf8|json},
Gregory Szorc
hgweb: expose list of per-repo labels to templates...
r29471 "lastchange": {lastchange|json},
"labels": {labels|json}
av6
hgweb: add index template to json/map...
r28268 }'
Yuya Nishihara
hgweb: add error template to json so it won't crash
r39505 error = '\{
"error": {error|utf8|json}
}'