##// END OF EJS Templates
release: merge default into stable for 4.7 release freeze
release: merge default into stable for 4.7 release freeze

File last commit:

r38500:a8872a82 default
r38762:7acec940 merge stable
Show More
test-hgweb.t
963 lines | 24.6 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: replace exit 80 with #require
r22046 #require serve
Mads Kiilerich
tests: use 'hghave serve' to guard tests that requires serve daemon management
r15446
Matt Mackall
tests: unify test-hgweb
r12432 Some tests for hgweb. Tests static files, plain files and different 404's.
$ hg init test
$ cd test
$ mkdir da
$ echo foo > da/foo
$ echo foo > foo
$ hg ci -Ambase
adding da/foo
adding foo
av6
hgweb: allow symbolic revisions with forward slashes in urls...
r25777 $ hg bookmark -r0 '@'
$ hg bookmark -r0 'a b c'
$ hg bookmark -r0 'd/e/f'
Matt Mackall
tests: unify test-hgweb
r12432 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
manifest
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ (get-with-headers.py localhost:$HGPORT 'file/tip/?style=raw')
Matt Mackall
tests: unify test-hgweb
r12432 200 Script output follows
drwxr-xr-x da
-rw-r--r-- 4 foo
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ (get-with-headers.py localhost:$HGPORT 'file/tip/da?style=raw')
Matt Mackall
tests: unify test-hgweb
r12432 200 Script output follows
-rw-r--r-- 4 foo
plain file
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'file/tip/foo?style=raw'
Matt Mackall
tests: unify test-hgweb
r12432 200 Script output follows
foo
should give a 404 - static file that does not exist
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'static/bogus'
Matt Mackall
tests: unify test-hgweb
r12432 404 Not Found
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
<link rel="icon" href="/static/hgicon.png" type="image/png" />
<meta name="robots" content="index, nofollow" />
<link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 <script type="text/javascript" src="/static/mercurial.js"></script>
Matt Mackall
tests: unify test-hgweb
r12432
<title>test: error</title>
</head>
<body>
<div class="container">
<div class="menu">
<div class="logo">
Matt Mackall
urls: bulk-change primary website URLs
r26421 <a href="https://mercurial-scm.org/">
Matt Mackall
tests: unify test-hgweb
r12432 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
</div>
<ul>
<li><a href="/shortlog">log</a></li>
<li><a href="/graph">graph</a></li>
<li><a href="/tags">tags</a></li>
Alexander Solovyov
hgweb: add separate page with bookmarks listing
r13597 <li><a href="/bookmarks">bookmarks</a></li>
Matt Mackall
tests: unify test-hgweb
r12432 <li><a href="/branches">branches</a></li>
Ross Lagerwall
hgweb: make paper:error consistent with template...
r17290 </ul>
<ul>
Augie Fackler
hgweb: add help link to templates missed in ead4e21f49f1
r12680 <li><a href="/help">help</a></li>
Matt Mackall
tests: unify test-hgweb
r12432 </ul>
</div>
<div class="main">
Bryan O'Sullivan
tests: update hgweb tests to include breadcrumbs
r18264 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
Matt Mackall
tests: unify test-hgweb
r12432 <h3>error</h3>
Gregory Szorc
hgweb: consolidate search form for paper...
r32758
Matt Mackall
tests: unify test-hgweb
r12432 <form class="search" action="/log">
Gregory Szorc
hgweb: consolidate search form for paper...
r32758 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
Alexander Plavin
paper: edit search hint to include new feature description
r19796 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
number or hash, or <a href="/help/revsets">revset expression</a>.</div>
Matt Mackall
tests: unify test-hgweb
r12432 </form>
<div class="description">
<p>
An error occurred while processing your request:
</p>
<p>
Not Found
</p>
</div>
</div>
</div>
</body>
</html>
[1]
should give a 404 - bad revision
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'file/spam/foo?style=raw'
Matt Mackall
tests: unify test-hgweb
r12432 404 Not Found
error: revision not found: spam
[1]
should give a 400 - bad command
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'file/tip/foo?cmd=spam&style=raw'
Matt Mackall
tests: unify test-hgweb
r12432 400* (glob)
error: no such method: spam
[1]
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT '?cmd=spam'
Anton Shestakov
hgweb: fail if an invalid command was supplied in url path (issue4071)...
r22506 400 no such method: spam
[1]
should give a 400 - bad command as a part of url path (issue4071)
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'spam'
Anton Shestakov
hgweb: fail if an invalid command was supplied in url path (issue4071)...
r22506 400 no such method: spam
[1]
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'raw-spam'
Anton Shestakov
hgweb: fail if an invalid command was supplied in url path (issue4071)...
r22506 400 no such method: spam
[1]
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'spam/tip/foo'
Anton Shestakov
hgweb: fail if an invalid command was supplied in url path (issue4071)...
r22506 400 no such method: spam
[1]
Matt Mackall
tests: unify test-hgweb
r12432 should give a 404 - file does not exist
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'file/tip/bork?style=raw'
Matt Mackall
tests: unify test-hgweb
r12432 404 Not Found
error: bork@2ef0ac749a14: not found in manifest
[1]
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'file/tip/bork'
Matt Mackall
tests: unify test-hgweb
r12432 404 Not Found
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
<link rel="icon" href="/static/hgicon.png" type="image/png" />
<meta name="robots" content="index, nofollow" />
<link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 <script type="text/javascript" src="/static/mercurial.js"></script>
Matt Mackall
tests: unify test-hgweb
r12432
<title>test: error</title>
</head>
<body>
<div class="container">
<div class="menu">
<div class="logo">
Matt Mackall
urls: bulk-change primary website URLs
r26421 <a href="https://mercurial-scm.org/">
Matt Mackall
tests: unify test-hgweb
r12432 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
</div>
<ul>
<li><a href="/shortlog">log</a></li>
<li><a href="/graph">graph</a></li>
<li><a href="/tags">tags</a></li>
Alexander Solovyov
hgweb: add separate page with bookmarks listing
r13597 <li><a href="/bookmarks">bookmarks</a></li>
Matt Mackall
tests: unify test-hgweb
r12432 <li><a href="/branches">branches</a></li>
Ross Lagerwall
hgweb: make paper:error consistent with template...
r17290 </ul>
<ul>
Augie Fackler
hgweb: add help link to templates missed in ead4e21f49f1
r12680 <li><a href="/help">help</a></li>
Matt Mackall
tests: unify test-hgweb
r12432 </ul>
</div>
<div class="main">
Bryan O'Sullivan
tests: update hgweb tests to include breadcrumbs
r18264 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
Matt Mackall
tests: unify test-hgweb
r12432 <h3>error</h3>
Gregory Szorc
hgweb: consolidate search form for paper...
r32758
Matt Mackall
tests: unify test-hgweb
r12432 <form class="search" action="/log">
Gregory Szorc
hgweb: consolidate search form for paper...
r32758 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
Alexander Plavin
paper: edit search hint to include new feature description
r19796 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
number or hash, or <a href="/help/revsets">revset expression</a>.</div>
Matt Mackall
tests: unify test-hgweb
r12432 </form>
<div class="description">
<p>
An error occurred while processing your request:
</p>
<p>
bork@2ef0ac749a14: not found in manifest
</p>
</div>
</div>
</div>
</body>
</html>
[1]
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'diff/tip/bork?style=raw'
Matt Mackall
tests: unify test-hgweb
r12432 404 Not Found
error: bork@2ef0ac749a14: not found in manifest
[1]
try bad style
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ (get-with-headers.py localhost:$HGPORT 'file/tip/?style=foobar')
Matt Mackall
tests: unify test-hgweb
r12432 200 Script output follows
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
<link rel="icon" href="/static/hgicon.png" type="image/png" />
<meta name="robots" content="index, nofollow" />
<link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
Benoit Allard
web: Made elapsed time calculation dynamic (javascript)....
r14046 <script type="text/javascript" src="/static/mercurial.js"></script>
Matt Mackall
tests: unify test-hgweb
r12432
<title>test: 2ef0ac749a14 /</title>
</head>
<body>
<div class="container">
<div class="menu">
<div class="logo">
Matt Mackall
urls: bulk-change primary website URLs
r26421 <a href="https://mercurial-scm.org/">
Matt Mackall
tests: unify test-hgweb
r12432 <img src="/static/hglogo.png" alt="mercurial" /></a>
</div>
<ul>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <li><a href="/shortlog/tip">log</a></li>
<li><a href="/graph/tip">graph</a></li>
Matt Mackall
tests: unify test-hgweb
r12432 <li><a href="/tags">tags</a></li>
Alexander Solovyov
hgweb: add separate page with bookmarks listing
r13597 <li><a href="/bookmarks">bookmarks</a></li>
Matt Mackall
tests: unify test-hgweb
r12432 <li><a href="/branches">branches</a></li>
</ul>
<ul>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <li><a href="/rev/tip">changeset</a></li>
Matt Mackall
tests: unify test-hgweb
r12432 <li class="active">browse</li>
</ul>
<ul>
</ul>
Augie Fackler
web: add a help view for getting hg help output
r12666 <ul>
<li><a href="/help">help</a></li>
</ul>
Matt Mackall
tests: unify test-hgweb
r12432 </div>
<div class="main">
Bryan O'Sullivan
tests: update hgweb tests to include breadcrumbs
r18264 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
av6
hgweb: link to revision by node hash in paper & coal...
r25617 <h3>
directory / @ 0:<a href="/rev/2ef0ac749a14">2ef0ac749a14</a>
av6
hgweb: show commit phase if it's not public...
r35064 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span> <span class="tag">@</span> <span class="tag">a b c</span> <span class="tag">d/e/f</span>
av6
hgweb: link to revision by node hash in paper & coal...
r25617 </h3>
Matt Mackall
tests: unify test-hgweb
r12432
Gregory Szorc
hgweb: consolidate search form for paper...
r32758
Matt Mackall
tests: unify test-hgweb
r12432 <form class="search" action="/log">
Gregory Szorc
hgweb: consolidate search form for paper...
r32758 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
Alexander Plavin
paper: edit search hint to include new feature description
r19796 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
number or hash, or <a href="/help/revsets">revset expression</a>.</div>
Matt Mackall
tests: unify test-hgweb
r12432 </form>
<table class="bigtable">
Anton Shestakov
hgweb: replace implicit <tbody> with explicit <thead> where appropriate...
r24054 <thead>
Matt Mackall
tests: unify test-hgweb
r12432 <tr>
<th class="name">name</th>
<th class="size">size</th>
<th class="permissions">permissions</th>
</tr>
Anton Shestakov
hgweb: replace implicit <tbody> with explicit <thead> where appropriate...
r24054 </thead>
Alexander Plavin
hgweb: make stripes in directory view with CSS
r19447 <tbody class="stripes2">
av6
paper: don't show '[up]' in file view when in root directory already
r38201
Matt Mackall
tests: unify test-hgweb
r12432
Alexander Plavin
hgweb: make stripes in directory view with CSS
r19447 <tr class="fileline">
Matt Mackall
tests: unify test-hgweb
r12432 <td class="name">
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="/file/tip/da">
Matt Mackall
tests: unify test-hgweb
r12432 <img src="/static/coal-folder.png" alt="dir."/> da/
</a>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="/file/tip/da/">
Matt Mackall
tests: unify test-hgweb
r12432
</a>
</td>
<td class="size"></td>
<td class="permissions">drwxr-xr-x</td>
</tr>
Alexander Plavin
hgweb: make stripes in directory view with CSS
r19447 <tr class="fileline">
Matt Mackall
tests: unify test-hgweb
r12432 <td class="filename">
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="/file/tip/foo">
Matt Mackall
tests: unify test-hgweb
r12432 <img src="/static/coal-file.png" alt="file"/> foo
</a>
</td>
<td class="size">4</td>
<td class="permissions">-rw-r--r--</td>
</tr>
Alexander Plavin
hgweb: make stripes in directory view with CSS
r19447 </tbody>
Matt Mackall
tests: unify test-hgweb
r12432 </table>
</div>
</div>
</body>
</html>
stop and restart
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Matt Mackall
tests: unify test-hgweb
r12432 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log
$ cat hg.pid >> $DAEMON_PIDS
Test the access/error files are opened in append mode
Pulkit Goyal
py3: replace file() with open()...
r36412 $ $PYTHON -c "print len(open('access.log', 'rb').readlines()), 'log lines written'"
Anton Shestakov
hgweb: fail if an invalid command was supplied in url path (issue4071)...
r22506 14 log lines written
Matt Mackall
tests: unify test-hgweb
r12432
static file
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --twice localhost:$HGPORT 'static/style-gitweb.css' - date etag server
Matt Mackall
tests: unify test-hgweb
r12432 200 Script output follows
av6
hgweb: add z-index for search field tooltip...
r38500 content-length: 9074
Mads Kiilerich
serve: don't send any content headers with 304 responses...
r18380 content-type: text/css
Matt Mackall
tests: unify test-hgweb
r12432
Gijs Kruitbosch
hgweb: ensure both foreground and background colors are specified (issue4872)...
r26536 body { font-family: sans-serif; font-size: 12px; border:solid #d9d8d1; border-width:1px; margin:10px; background: white; color: black; }
Matt Mackall
tests: unify test-hgweb
r12432 a { color:#0000cc; }
a:hover, a:visited, a:active { color:#880000; }
div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
div.page_header a:visited { color:#0000cc; }
div.page_header a:hover { color:#880000; }
Gregory Szorc
hgweb: refresh styling of gitweb's search form...
r32762 div.page_nav {
padding:8px;
display: flex;
justify-content: space-between;
align-items: center;
}
Matt Mackall
tests: unify test-hgweb
r12432 div.page_nav a:visited { color:#0000cc; }
Gregory Szorc
hgweb: use separate CSS class for navigation links in footer...
r32990 div.extra_nav {
padding: 8px;
}
div.extra_nav a:visited {
color: #0000cc;
}
Matt Mackall
tests: unify test-hgweb
r12432 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
div.page_footer_text { float:left; color:#555555; font-style:italic; }
div.page_body { padding:8px; }
div.title, a.title {
display:block; padding:6px 8px;
font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
}
a.title:hover { background-color: #d9d8d1; }
div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
div.log_body { padding:8px 8px 8px 150px; }
.age { white-space:nowrap; }
av6
gitweb: make span.age CSS selector more specific...
r36250 a.title span.age { position:relative; float:left; width:142px; font-style:italic; }
Matt Mackall
tests: unify test-hgweb
r12432 div.log_link {
padding:0px 8px;
font-size:10px; font-family:sans-serif; font-style:normal;
position:relative; float:left; width:136px;
}
div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
a.list { text-decoration:none; color:#000000; }
a.list:hover { text-decoration:underline; color:#880000; }
table { padding:8px 4px; }
th { padding:2px 5px; font-size:12px; text-align:left; }
av6
gitweb: make different blocks of annotated lines have different colors
r29573 .parity0 { background-color:#ffffff; }
av6
gitweb: visually highlight source lines when hovering over line numbers...
r26670 tr.dark, .parity1, pre.sourcelines.stripes > :nth-child(4n+4) { background-color:#f6f6f0; }
tr.light:hover, .parity0:hover, tr.dark:hover, .parity1:hover,
pre.sourcelines.stripes > :nth-child(4n+2):hover,
pre.sourcelines.stripes > :nth-child(4n+4):hover,
pre.sourcelines.stripes > :nth-child(4n+1):hover + :nth-child(4n+2),
pre.sourcelines.stripes > :nth-child(4n+3):hover + :nth-child(4n+4) { background-color:#edece6; }
Matt Mackall
tests: unify test-hgweb
r12432 td { padding:2px 5px; font-size:12px; vertical-align:top; }
td.closed { background-color: #99f; }
td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
td.indexlinks { white-space: nowrap; }
td.indexlinks a {
padding: 2px 5px; line-height: 10px;
border: 1px solid;
color: #ffffff; background-color: #7777bb;
border-color: #aaaadd #333366 #333366 #aaaadd;
font-weight: bold; text-align: center; text-decoration: none;
font-size: 10px;
}
td.indexlinks a:hover { background-color: #6666aa; }
div.pre { font-family:monospace; font-size:12px; white-space:pre; }
Gregory Szorc
hgweb: refresh styling of gitweb's search form...
r32762
.search {
margin-right: 8px;
}
div#hint {
position: absolute;
display: none;
width: 250px;
padding: 5px;
background: #ffc;
border: 1px solid yellow;
border-radius: 5px;
av6
hgweb: add z-index for search field tooltip...
r38500 z-index: 15;
Gregory Szorc
hgweb: refresh styling of gitweb's search form...
r32762 }
#searchform:hover div#hint { display: block; }
Denis Laxalde
hgweb: highlight data of the current revision in annotate view...
r29387 tr.thisrev a { color:#999999; text-decoration: none; }
tr.thisrev pre { color:#009900; }
Tooru Fujisawa
hgweb: avoid line wrap between revision and annotate-info (issue5398)...
r30074 td.annotate {
white-space: nowrap;
}
Denis Laxalde
hgweb: add link to parents of annotated revision in annotate view...
r29522 div.annotate-info {
Denis Laxalde
hgweb: re-implement followlines UI selection using buttons...
r33390 z-index: 5;
Denis Laxalde
hgweb: add link to parents of annotated revision in annotate view...
r29522 display: none;
position: absolute;
background-color: #FFFFFF;
av6
gitweb: make annotate popup use theme colors
r29626 border: 1px solid #d9d8d1;
Denis Laxalde
hgweb: add link to parents of annotated revision in annotate view...
r29522 text-align: left;
color: #000000;
padding: 5px;
}
div.annotate-info a { color: #0000FF; text-decoration: underline; }
td.annotate:hover div.annotate-info { display: inline; }
Gregory Szorc
hgweb: add HTML elements to control whitespace settings for annotate...
r34392
#diffopts-form {
padding-left: 8px;
display: none;
}
Matt Mackall
tests: unify test-hgweb
r12432 .linenr { color:#999999; text-decoration:none }
div.rss_logo { float: right; white-space: nowrap; }
div.rss_logo a {
padding:3px 6px; line-height:10px;
border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
color:#ffffff; background-color:#ff6600;
font-weight:bold; font-family:sans-serif; font-size:10px;
text-align:center; text-decoration:none;
}
div.rss_logo a:hover { background-color:#ee5500; }
pre { margin: 0; }
span.logtags span {
padding: 0px 4px;
font-size: 10px;
font-weight: normal;
border: 1px solid;
background-color: #ffaaff;
border-color: #ffccff #ff00ee #ff00ee #ffccff;
}
av6
hgweb: show commit phase if it's not public...
r35064 span.logtags span.phasetag {
background-color: #dfafff;
border-color: #e2b8ff #ce48ff #ce48ff #e2b8ff;
}
av6
hgweb: show obsolescence status of a commit...
r35088 span.logtags span.obsoletetag {
background-color: #dddddd;
border-color: #e4e4e4 #a3a3a3 #a3a3a3 #e4e4e4;
}
av6
hgweb: show instabilities of a commit...
r35093 span.logtags span.instabilitytag {
background-color: #ffb1c0;
border-color: #ffbbc8 #ff4476 #ff4476 #ffbbc8;
}
Matt Mackall
tests: unify test-hgweb
r12432 span.logtags span.tagtag {
background-color: #ffffaa;
border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
}
span.logtags span.branchtag {
background-color: #aaffaa;
border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
}
span.logtags span.inbranchtag {
background-color: #d5dde6;
border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
}
Yuya Nishihara
hgweb: add bookmark labels to gitweb theme (based on 270f57d35525)
r13863 span.logtags span.bookmarktag {
background-color: #afdffa;
border-color: #ccecff #46ace6 #46ace6 #ccecff;
}
Gregory Szorc
templates: use CSS classes for diff styling...
r23744 span.difflineplus { color:#008800; }
span.difflineminus { color:#cc0000; }
span.difflineat { color:#990099; }
av6
gitweb: port code selection without line numbers from paper...
r26288 div.diffblocks { counter-reset: lineno; }
div.diffblock { counter-increment: lineno; }
pre.sourcelines { position: relative; counter-reset: lineno; }
pre.sourcelines > span {
display: inline-block;
box-sizing: border-box;
width: 100%;
padding: 0 0 0 5em;
counter-increment: lineno;
av6
gitweb, monoblue: fix vertical align of spans in .sourcelines...
r26362 vertical-align: top;
av6
gitweb: port code selection without line numbers from paper...
r26288 }
pre.sourcelines > span:before {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
display: inline-block;
Denis Laxalde
hgweb: re-implement followlines UI selection using buttons...
r33390 margin-left: -6em;
av6
gitweb: port code selection without line numbers from paper...
r26288 width: 4em;
color: #999;
text-align: right;
content: counters(lineno,".");
float: left;
}
pre.sourcelines > a {
display: inline-block;
position: absolute;
left: 0px;
width: 4em;
height: 1em;
}
av6
gitweb, monoblue: port highlighting linked lines from paper...
r26363 tr:target td,
pre.sourcelines > span:target,
pre.sourcelines.stripes > span:target {
background-color: #bfdfff;
}
Matt Mackall
tests: unify test-hgweb
r12432
Gregory Szorc
gitweb: use monospace font for commit messages...
r31625 .description {
font-family: monospace;
Gregory Szorc
gitweb: preserve whitespace in description...
r33557 white-space: pre;
Gregory Szorc
gitweb: use monospace font for commit messages...
r31625 }
Denis Laxalde
gitweb: plug followlines UI in filerevision view...
r31949 /* Followlines */
Denis Laxalde
hgweb: plug followlines action in annotate view...
r32994 tbody.sourcelines > tr.followlines-selected,
Denis Laxalde
gitweb: plug followlines UI in filerevision view...
r31949 pre.sourcelines > span.followlines-selected {
background-color: #99C7E9 !important;
}
div#followlines {
av6
gitweb: apply styles from annotate tooltip to followlines popup...
r35026 background-color: #FFF;
border: 1px solid #d9d8d1;
padding: 5px;
Denis Laxalde
gitweb: plug followlines UI in filerevision view...
r31949 position: fixed;
}
div.followlines-cancel {
text-align: right;
}
div.followlines-cancel > button {
line-height: 80%;
padding: 0;
border: 0;
border-radius: 2px;
background-color: inherit;
font-weight: bold;
}
div.followlines-cancel > button:hover {
color: #FFFFFF;
background-color: #CF1F1F;
}
div.followlines-link {
margin: 2px;
margin-top: 4px;
font-family: sans-serif;
}
Denis Laxalde
hgweb: re-implement followlines UI selection using buttons...
r33390 .btn-followlines {
av6
hgweb: make followlines button absolutely positioned...
r37510 position: absolute;
Denis Laxalde
gitweb: plug followlines UI in filerevision view...
r31949 display: none;
Denis Laxalde
hgweb: re-implement followlines UI selection using buttons...
r33390 cursor: pointer;
box-sizing: content-box;
font-size: 11px;
width: 13px;
height: 13px;
border-radius: 3px;
margin: 0px;
margin-top: -2px;
padding: 0px;
background-color: #E5FDE5;
border: 1px solid #9BC19B;
font-family: monospace;
text-align: center;
line-height: 5px;
}
span.followlines-select .btn-followlines {
margin-left: -1.6em;
}
.btn-followlines:hover {
transform: scale(1.1, 1.1);
}
.btn-followlines .followlines-plus {
color: green;
}
.btn-followlines .followlines-minus {
color: red;
}
.btn-followlines-end {
background-color: #ffdcdc;
}
.sourcelines tr:hover .btn-followlines,
.sourcelines span.followlines-select:hover > .btn-followlines {
Denis Laxalde
gitweb: plug followlines UI in filerevision view...
r31949 display: inline;
}
Denis Laxalde
hgweb: re-implement followlines UI selection using buttons...
r33390 .btn-followlines-hidden,
.sourcelines tr:hover .btn-followlines-hidden {
Denis Laxalde
gitweb: plug followlines UI in filerevision view...
r31949 display: none;
}
Denis Laxalde
hgweb: re-implement followlines UI selection using buttons...
r33390
Matt Mackall
tests: unify test-hgweb
r12432 /* Graph */
div#wrapper {
position: relative;
margin: 0;
padding: 0;
margin-top: 3px;
}
canvas {
position: absolute;
z-index: 5;
top: -0.9em;
margin: 0;
}
av6
gitweb: make actual changeset entries have backgrounds on /graph...
r35549 ul#graphnodes {
Matt Mackall
tests: unify test-hgweb
r12432 list-style: none inside none;
padding: 0;
margin: 0;
}
av6
gitweb: make actual changeset entries have backgrounds on /graph...
r35549 ul#graphnodes li {
position: relative;
height: 37px;
overflow: visible;
padding-top: 2px;
}
ul#graphnodes li .fg {
Matt Mackall
tests: unify test-hgweb
r12432 position: absolute;
z-index: 10;
}
ul#graphnodes li .info {
font-size: 100%;
font-style: italic;
}
wujek srujek
hgweb: side-by-side comparison functionality...
r17202
/* Comparison */
.legend {
padding: 1.5% 0 1.5% 0;
}
.legendinfo {
border: 1px solid #d9d8d1;
font-size: 80%;
text-align: center;
padding: 0.5%;
}
.equal {
background-color: #ffffff;
}
.delete {
Matt Mackall
hgweb: improve colors for comparison page...
r17243 background-color: #faa;
color: #333;
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 }
.insert {
Matt Mackall
hgweb: improve colors for comparison page...
r17243 background-color: #ffa;
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 }
.replace {
Matt Mackall
hgweb: improve colors for comparison page...
r17243 background-color: #e8e8e8;
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 }
.comparison {
overflow-x: auto;
}
.header th {
text-align: center;
}
.block {
border-top: 1px solid #d9d8d1;
}
Augie Fackler
test-hgweb-*: output change fixes from b1d65cb8
r20256
.scroll-loading {
-webkit-animation: change_color 1s linear 0s infinite alternate;
-moz-animation: change_color 1s linear 0s infinite alternate;
-o-animation: change_color 1s linear 0s infinite alternate;
animation: change_color 1s linear 0s infinite alternate;
}
@-webkit-keyframes change_color {
from { background-color: #A0CEFF; } to { }
}
@-moz-keyframes change_color {
from { background-color: #A0CEFF; } to { }
}
@-o-keyframes change_color {
from { background-color: #A0CEFF; } to { }
}
@keyframes change_color {
from { background-color: #A0CEFF; } to { }
}
.scroll-loading-error {
background-color: #FFCCCC !important;
}
av6
tests: fix css-related test-hgweb.t breakage from 93258d53ec35
r26175
#doc {
margin: 0 8px;
}
Matt Mackall
tests: unify test-hgweb
r12432 304 Not Modified
Anton Shestakov
hgweb: refresh hgweb.repo on phase change (issue4061)...
r22577 phase changes are refreshed (issue4061)
$ echo bar >> foo
$ hg ci -msecret --secret
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'log?style=raw'
Anton Shestakov
hgweb: refresh hgweb.repo on phase change (issue4061)...
r22577 200 Script output follows
# HG changelog
# Node ID 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
changeset: 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
revision: 0
user: test
date: Thu, 01 Jan 1970 00:00:00 +0000
summary: base
branch: default
tag: tip
av6
hgweb: allow symbolic revisions with forward slashes in urls...
r25777 bookmark: @
bookmark: a b c
bookmark: d/e/f
Anton Shestakov
hgweb: refresh hgweb.repo on phase change (issue4061)...
r22577
$ hg phase --draft tip
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'log?style=raw'
Anton Shestakov
hgweb: refresh hgweb.repo on phase change (issue4061)...
r22577 200 Script output follows
# HG changelog
# Node ID a084749e708a9c4c0a5b652a2a446322ce290e04
changeset: a084749e708a9c4c0a5b652a2a446322ce290e04
revision: 1
user: test
date: Thu, 01 Jan 1970 00:00:00 +0000
summary: secret
branch: default
tag: tip
changeset: 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
revision: 0
user: test
date: Thu, 01 Jan 1970 00:00:00 +0000
summary: base
av6
hgweb: allow symbolic revisions with forward slashes in urls...
r25777 bookmark: @
bookmark: a b c
bookmark: d/e/f
Anton Shestakov
hgweb: refresh hgweb.repo on phase change (issue4061)...
r22577
av6
hgweb: allow symbolic revisions with forward slashes in urls...
r25777 access bookmarks
$ get-with-headers.py localhost:$HGPORT 'rev/@?style=paper' | egrep '^200|changeset 0:'
200 Script output follows
changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
$ get-with-headers.py localhost:$HGPORT 'rev/%40?style=paper' | egrep '^200|changeset 0:'
200 Script output follows
changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
$ get-with-headers.py localhost:$HGPORT 'rev/a%20b%20c?style=paper' | egrep '^200|changeset 0:'
200 Script output follows
changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
$ get-with-headers.py localhost:$HGPORT 'rev/d%252Fe%252Ff?style=paper' | egrep '^200|changeset 0:'
200 Script output follows
changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
av6
paper: don't show '[up]' in file view when in root directory already
r38201 no '[up]' entry in file view when in root directory
$ get-with-headers.py localhost:$HGPORT 'file/tip?style=paper' | grep -F '[up]'
[1]
$ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=paper' | grep -F '[up]'
<a href="/file/tip/?style=paper">[up]</a>
$ get-with-headers.py localhost:$HGPORT 'file/tip?style=coal' | grep -F '[up]'
[1]
$ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=coal' | grep -F '[up]'
<a href="/file/tip/?style=coal">[up]</a>
av6
gitweb: don't show '[up]' in file view when in root directory already
r38202 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=gitweb' | grep -F '[up]'
[1]
$ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=gitweb' | grep -F '[up]'
<a href="/file/tip/?style=gitweb">[up]</a>
av6
monoblue: don't show '[up]' in file view when in root directory already
r38203 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=monoblue' | grep -F '[up]'
[1]
$ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=monoblue' | grep -F '[up]'
<a href="/file/tip/?style=monoblue">[up]</a>
av6
spartan: don't show '[up]' in file view when in root directory already
r38204 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=spartan' | grep -F '[up]'
[1]
$ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=spartan' | grep -F '[up]'
<a href="/file/tip/?style=spartan">[up]</a>
av6
paper: don't show '[up]' in file view when in root directory already
r38201
Yuya Nishihara
hgweb: prevent loading style map from directories other than specified paths...
r24296 no style can be loaded from directories other than the specified paths
$ mkdir -p x/templates/fallback
$ cat <<EOF > x/templates/fallback/map
> default = 'shortlog'
> shortlog = 'fall back to default\n'
> mimetype = 'text/plain'
> EOF
$ cat <<EOF > x/map
> default = 'shortlog'
> shortlog = 'access to outside of templates directory\n'
> mimetype = 'text/plain'
> EOF
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Yuya Nishihara
hgweb: prevent loading style map from directories other than specified paths...
r24296 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log \
> --config web.style=fallback --config web.templates=x/templates
$ cat hg.pid >> $DAEMON_PIDS
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT "?style=`pwd`/x"
Yuya Nishihara
hgweb: prevent loading style map from directories other than specified paths...
r24296 200 Script output follows
fall back to default
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT '?style=..'
Yuya Nishihara
hgweb: prevent loading style map from directories other than specified paths...
r24296 200 Script output follows
fall back to default
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT '?style=./..'
Yuya Nishihara
hgweb: prevent loading style map from directories other than specified paths...
r24296 200 Script output follows
fall back to default
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT '?style=.../.../'
Yuya Nishihara
hgweb: prevent loading style map from directories other than specified paths...
r24296 200 Script output follows
fall back to default
Yuya Nishihara
hgweb: do not try to replace signal handlers while locking...
r38158 $ killdaemons.py
Test signal-safe-lock in web and non-web processes
$ cat <<'EOF' > disablesig.py
> import signal
> from mercurial import error, extensions
> def disabledsig(orig, signalnum, handler):
> if signalnum == signal.SIGTERM:
> raise error.Abort(b'SIGTERM cannot be replaced')
> try:
> return orig(signalnum, handler)
> except ValueError:
> raise error.Abort(b'signal.signal() called in thread?')
> def uisetup(ui):
> extensions.wrapfunction(signal, b'signal', disabledsig)
> EOF
by default, signal interrupt should be disabled while making a lock file
$ hg debuglock -s --config extensions.disablesig=disablesig.py
abort: SIGTERM cannot be replaced
[255]
but in hgweb, it isn't disabled since some WSGI servers complains about
unsupported signal.signal() calls (see issue5889)
$ hg serve --config extensions.disablesig=disablesig.py \
> --config web.allow-push='*' --config web.push_ssl=False \
> -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
$ hg clone -q http://localhost:$HGPORT/ repo
$ hg bookmark -R repo foo
push would fail if signal.signal() were called
$ hg push -R repo -B foo
pushing to http://localhost:$HGPORT/
searching for changes
no changes found
exporting bookmark foo
[1]
$ rm -R repo
$ killdaemons.py
Matt Mackall
tests: unify test-hgweb
r12432 errors
$ cat errors.log
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
Gregory Szorc
hgweb: send proper HTTP response after uncaught exception...
r23409 Uncaught exceptions result in a logged error and canned HTTP response
Jun Wu
tests: reorder hg serve commands...
r28549 $ hg serve --config extensions.hgweberror=$TESTDIR/hgweberror.py -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
Gregory Szorc
hgweb: send proper HTTP response after uncaught exception...
r23409 $ cat hg.pid >> $DAEMON_PIDS
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'raiseerror' transfer-encoding content-type
Gregory Szorc
hgweb: send proper HTTP response after uncaught exception...
r23409 500 Internal Server Error
transfer-encoding: chunked
Internal Server Error (no-eol)
[1]
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Gregory Szorc
hgweb: send proper HTTP response after uncaught exception...
r23409 $ head -1 errors.log
.* Exception happened during processing request '/raiseerror': (re)
Uncaught exception after partial content sent
Jun Wu
tests: reorder hg serve commands...
r28549 $ hg serve --config extensions.hgweberror=$TESTDIR/hgweberror.py -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
Matt Mackall
test-hgweb: fix shutdown race...
r23952 $ cat hg.pid >> $DAEMON_PIDS
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT 'raiseerror?partialresponse=1' transfer-encoding content-type
Gregory Szorc
hgweb: send proper HTTP response after uncaught exception...
r23409 200 Script output follows
transfer-encoding: chunked
content-type: text/plain
partial content
Internal Server Error (no-eol)
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Gregory Szorc
tests: add tests demonstrating ISE for HTTP 304 responses with hgwebdir...
r37845
HTTP 304 works with hgwebdir (issue5844)
$ cat > hgweb.conf << EOF
> [paths]
> /repo = $TESTTMP/test
> EOF
$ hg serve --web-conf hgweb.conf -p $HGPORT -d --pid-file hg.pid -E error.log
$ cat hg.pid >> $DAEMON_PIDS
$ get-with-headers.py --twice --headeronly localhost:$HGPORT 'repo/static/style.css' - date etag server
200 Script output follows
content-length: 2677
content-type: text/css
Gregory Szorc
hgweb: discard Content-Type header for 304 responses (issue5844)...
r37846 304 Not Modified
Gregory Szorc
tests: add tests demonstrating ISE for HTTP 304 responses with hgwebdir...
r37845
$ killdaemons.py
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..