##// END OF EJS Templates
dispatch: force \n for newlines on sys.std* streams (BC)...
dispatch: force \n for newlines on sys.std* streams (BC) The sys.std* streams behave differently on Python 3. On Python 3, these streams are an io.TextIOWrapper that wraps a binary buffer stored on a .buffer attribute. These TextIOWrapper instances normalize \n to os.linesep by default. On Windows, this means that \n is normalized to \r\n. So functions like print() which have an implicit end='\n' will actually emit \r\n for line endings. While most parts of Mercurial go through the ui.write() layer to print output, some code - notably in extensions and hooks - can use print(). If this code was using print() or otherwise writing to sys.std* on Windows, Mercurial would emit \r\n. In reality, pretty much everything on Windows reacts to \n just fine. Mercurial itself doesn't emit \r\n when going through the ui layer. Changing the sys.std* streams to not normalize line endings sounds like a scary change. But I think it is safe. It also makes Mercurial on Python 3 behave similarly to Python 2, which did not perform \r\n normalization in print() by default. .. bc:: sys.{stdout, stderr, stdin} now use \n line endings on Python 3 Differential Revision: https://phab.mercurial-scm.org/D8339

File last commit:

r35623:45a81636 default
r45141:02fa5392 default
Show More
graph.tmpl
53 lines | 1.6 KiB | application/x-cheetah | CheetahLexer
{header}
<title>{repo|escape}: graph</title>
<link rel="alternate" type="application/atom+xml"
href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}: tags">
<link rel="alternate" type="application/rss+xml"
href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}: tags">
</head>
<body>
<div class="buttons">
<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a>
<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a>
<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
<a href="{url|urlescape}file/{symrev}/{sessionvars%urlparameter}">files</a>
<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
</div>
<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / graph</h2>
<form action="{url|urlescape}log">
{sessionvars%hiddenformentry}
<p>
<label for="search1">search:</label>
<input name="rev" id="search1" type="text" size="30">
navigate: <small class="navigate">{changenav%navgraph}</small>
</p>
</form>
<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
<div id="wrapper">
<canvas id="graph"></canvas>
<ul id="graphnodes">{nodes%graphentry}</ul>
</div>
<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
var data = {jsdata|json};
var graph = new Graph();
graph.scale({bg_height});
graph.render(data);
</script>
<form action="{url|urlescape}log">
{sessionvars%hiddenformentry}
<p>
<label for="search1">search:</label>
<input name="rev" id="search1" type="text" size="30">
navigate: <small class="navigate">{changenav%navgraph}</small>
</p>
</form>
{footer}