##// END OF EJS Templates
Merge with upstream.
Thomas Arendsen Hein -
r1586:5c5aaaa9 merge default
parent child Browse files
Show More
@@ -0,0 +1,30 b''
1 #header#
2 <title>#repo|escape#: Changelog</title>
3 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
6 <body>
7
8 <div class="page_header">
9 <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / changelog
10 </div>
11
12 <form action="#">
13 <div class="search">
14 <input type="hidden" name="repo" value="#repo#" />
15 <input type="hidden" name="style" value="gitweb" />
16 <input type="hidden" name="cmd" value="changelog" />
17 <input type="text" name="rev" />
18 </div>
19 </form>
20 </div>
21
22 <div class="page_nav">
23 <a href="?cmd=summary;style=gitweb">summary</a> | changelog | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=manifest;manifest=#manifest#;path=/;style=gitweb">manifest</a><br/>
24 <br/>
25 #changenav%naventry#<br/>
26 </div>
27
28 #entries%changelogentry#
29
30 #footer#
@@ -0,0 +1,14 b''
1 <div>
2 <a class="title" href="?cmd=changeset;node=#node#;style=gitweb"><span class="age">#date|age# ago</span>#desc|firstline|escape#</a>
3 </div>
4 <div class="title_text">
5 <div class="log_link">
6 <a href="?cmd=changeset;node=#node#;style=gitweb">changeset</a><br/>
7 </div>
8 <i>#author|obfuscate# [#date|rfc822date#]</i><br/>
9 </div>
10 <div class="log_body">
11 #desc|addbreaks#
12 <br/>
13 <br/>
14 </div>
@@ -0,0 +1,40 b''
1 #header#
2 <title>#repo|escape#: Changeset</title>
3 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
6 <body>
7
8 <div class="page_header">
9 <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / changeset
10 </div>
11
12 <div class="page_nav">
13 <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=changelog;rev=#rev#;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=manifest;manifest=#manifest#;path=/;style=gitweb">manifest</a> | changeset | <a href="?cmd=changeset;node=#node#;style=raw">raw</a><br/>
14 </div>
15
16 <div>
17 <a class="title" href="?cmd=changeset;node=#node#;style=raw">#desc|escape|firstline#</a>
18 </div>
19 <div class="title_text">
20 <table cellspacing="0">
21 <tr><td>author</td><td>#author|obfuscate#</td></tr>
22 <tr><td></td><td>#date|date# (#date|age# ago)</td></tr>
23 <tr><td>changeset</td><td style="font-family:monospace">#node|short#</td></tr>
24 <tr><td>manifest</td><td style="font-family:monospace"><a class="list" href="?cmd=manifest;manifest=#manifest|short#;path=/;style=gitweb">#manifest|short#</a></td></tr>
25 #parent%changesetparent#
26 #changesettag#
27 </table></div>
28
29 <div class="title_text">
30 #desc|addbreaks#
31 </div>
32
33 <div class="title_text">
34 <table cellspacing="0">
35 #files#
36 </table></div>
37
38 <div class="page_body">#diff#</div>
39
40 #footer#
@@ -0,0 +1,12 b''
1 #header#
2 <div class="page_nav">
3 <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=changelog;style=gitweb">log</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=manifest;manifest=#manifest#;path=/;style=gitweb">manifest</a><br/>
4 </div>
5
6 <div>
7 <br/>
8 <i>Error parsing query string</i><br/>
9 <br/>
10 </div>
11
12 #footer#
@@ -0,0 +1,43 b''
1 #header#
2 <title>#repo|escape#: Annotate</title>
3 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
6 <body>
7
8 <div class="page_header">
9 <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / annotate
10 </div>
11
12 <div class="page_nav">
13 <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=manifest;manifest=#manifest#;path=#path#;style=gitweb">manifest</a> | <a href="?cmd=changeset;node=#node#;style=gitweb">changeset</a> | <a href="?cmd=file;file=#file#;filenode=#filenode#;style=gitweb">file</a> | <a href="?cmd=filelog;file=#file#;filenode=#filenode#;style=gitweb">revisions</a> | annotate<br/>
14 </div>
15
16 <div class="title">#file#</div>
17
18 <table>
19 <tr>
20 <td class="metatag">changeset #rev#:</td>
21 <td><a href="?cs=#node|short#;style=gitweb">#node|short#</a></td></tr>
22 #parent%fileannotateparent#
23 <tr>
24 <td class="metatag">manifest:</td>
25 <td><a href="?mf=#manifest|short#;path=/;style=gitweb">#manifest|short#</a></td></tr>
26 <tr>
27 <td class="metatag">author:</td>
28 <td>#author|obfuscate#</td></tr>
29 <tr>
30 <td class="metatag">date:</td>
31 <td>#date|date# (#date|age# ago)</td></tr>
32 <tr>
33 <td class="metatag">permissions:</td>
34 <td>#permissions|permissions#</td></tr>
35 </table>
36
37 <div class="page_body">
38 <table>
39 #annotate%annotateline#
40 </table>
41 </div>
42
43 #footer#
@@ -0,0 +1,20 b''
1 #header#
2 <title>#repo|escape#: Manifest</title>
3 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
6 <body>
7
8 <div class="page_header">
9 <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / manifest
10 </div>
11
12 <div class="page_nav">
13 <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=file;file=#file#;filenode=#filenode#;style=gitweb">file</a> | revisions | <a href="?cmd=annotate;file=#file#;filenode=#filenode#;style=gitweb">annotate</a> | <a href="?fl=#filenode|short#;file=#file#;style=rss">rss</a><br/>
14 </div>
15
16 <table>
17 #entries%filelogentry#
18 </table>
19
20 #footer#
@@ -0,0 +1,41 b''
1 #header#
2 <title>#repo|escape#: File revision</title>
3 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
6 <body>
7
8 <div class="page_header">
9 <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / file revision
10 </div>
11
12 <div class="page_nav">
13 <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?mf=#manifest|short#;path=#path#;style=gitweb">manifest</a> | <a href="?cmd=changeset;node=#node#;style=gitweb">changeset</a> | file | <a href="?cmd=filelog;file=#file#;filenode=#filenode#;style=gitweb">revisions</a> | <a href="?cmd=annotate;file=#file#;filenode=#filenode#;style=gitweb">annotate</a> | <a href="?cmd=file;file=#file#;filenode=#filenode#;style=raw">raw</a><br/>
14 </div>
15
16 <div class="title">#file#</div>
17
18 <table>
19 <tr>
20 <td class="metatag">changeset #rev#:</td>
21 <td><a href="?cs=#node|short#;style=gitweb">#node|short#</a></td></tr>
22 #parent%fileannotateparent#
23 <tr>
24 <td class="metatag">manifest:</td>
25 <td><a href="?mf=#manifest|short#;path=/;style=gitweb">#manifest|short#</a></td></tr>
26 <tr>
27 <td class="metatag">author:</td>
28 <td>#author|obfuscate#</td></tr>
29 <tr>
30 <td class="metatag">date:</td>
31 <td>#date|date# (#date|age# ago)</td></tr>
32 <tr>
33 <td class="metatag">permissions:</td>
34 <td>#permissions|permissions#</td></tr>
35 </table>
36
37 <div class="page_body">
38 #text%fileline#
39 </div>
40
41 #footer#
@@ -0,0 +1,6 b''
1 <div class="page_footer">
2 <div class="page_footer_text">#repo|escape#</div>
3 <a class="rss_logo" href="?cmd=changelog;style=rss">RSS</a>
4 </div>
5 </body>
6 </html>
@@ -0,0 +1,59 b''
1 Content-type: text/html
2
3 <?xml version="1.0" encoding="utf-8"?>
4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
6 <head>
7 <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
8 <meta name="robots" content="index, nofollow"/>
9 <style type="text/css">
10 body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; }
11 a { color:#0000cc; }
12 a:hover, a:visited, a:active { color:#880000; }
13 div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
14 div.page_header a:visited { color:#0000cc; }
15 div.page_header a:hover { color:#880000; }
16 div.page_nav { padding:8px; }
17 div.page_nav a:visited { color:#0000cc; }
18 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
19 div.page_footer { height:17px; padding:4px 8px; background-color: #d9d8d1; }
20 div.page_footer_text { float:left; color:#555555; font-style:italic; }
21 div.page_body { padding:8px; }
22 div.title, a.title {
23 display:block; padding:6px 8px;
24 font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
25 }
26 a.title:hover { background-color: #d9d8d1; }
27 div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
28 div.log_body { padding:8px 8px 8px 150px; }
29 span.age { position:relative; float:left; width:142px; font-style:italic; }
30 div.log_link {
31 padding:0px 8px;
32 font-size:10px; font-family:sans-serif; font-style:normal;
33 position:relative; float:left; width:136px;
34 }
35 div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
36 a.list { text-decoration:none; color:#000000; }
37 a.list:hover { text-decoration:underline; color:#880000; }
38 table { padding:8px 4px; }
39 th { padding:2px 5px; font-size:12px; text-align:left; }
40 tr.light:hover, .parity0:hover { background-color:#edece6; }
41 tr.dark, .parity1 { background-color:#f6f6f0; }
42 tr.dark:hover, .parity1:hover { background-color:#edece6; }
43 td { padding:2px 5px; font-size:12px; vertical-align:top; }
44 td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
45 div.pre { font-family:monospace; font-size:12px; white-space:pre; }
46 div.diff_info { font-family:monospace; color:#000099; background-color:#edece6; font-style:italic; }
47 div.index_include { border:solid #d9d8d1; border-width:0px 0px 1px; padding:12px 8px; }
48 div.search { margin:4px 8px; position:absolute; top:56px; right:12px }
49 .linenr { color:#999999; text-decoration:none }
50 a.rss_logo {
51 float:right; padding:3px 0px; width:35px; line-height:10px;
52 border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
53 color:#ffffff; background-color:#ff6600;
54 font-weight:bold; font-family:sans-serif; font-size:10px;
55 text-align:center; text-decoration:none;
56 }
57 a.rss_logo:hover { background-color:#ee5500; }
58 </style>
59
@@ -0,0 +1,27 b''
1 #header#
2 <title>#repo|escape#: Manifest</title>
3 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
6 <body>
7
8 <div class="page_header">
9 <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / manifest
10 </div>
11
12 <div class="page_nav">
13 <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | manifest | <a href="?cs=#node|short#;style=gitweb">changeset</a><br/>
14 </div>
15
16 <div class="title" >#path|escape#</div>
17 <div class="page_body">
18 <table cellspacing="0">
19 <tr class="light">
20 <td style="font-family:monospace">drwxr-xr-x</td>
21 <td><a href="?cmd=manifest;manifest=#manifest#;path=#up#;style=gitweb">[up]</a></td>
22 <td class="link">&nbsp;</td>
23 </tr>
24 #dentries%manifestdirentry#
25 #fentries%manifestfileentry#
26 </table>
27 #footer#
@@ -0,0 +1,42 b''
1 default = "summary"
2 header = header-gitweb.tmpl
3 footer = footer-gitweb.tmpl
4 search = search-gitweb.tmpl
5 changelog = changelog-gitweb.tmpl
6 summary = summary-gitweb.tmpl
7 error = error-gitweb.tmpl
8 naventry = "<a href="?cmd=changelog;rev=#rev#;style=gitweb">#label#</a> "
9 navshortentry = "<a href="?cmd=shortlog;rev=#rev#;style=gitweb">#label#</a> "
10 filedifflink = "<a href="?cmd=filediff;node=#node#;file=#file#;style=gitweb">#file#</a> "
11 filenodelink = "<tr class="light"><td><a class="list" href="">#file#</a></td><td></td><td class="link"><a href="?cmd=file;filenode=#filenode#;file=#file#;style=gitweb">file</a> | <!-- FIXME: <a href="?fd=#filenode|short#;file=#file#;style=gitweb">diff</a> | --> <a href="?cmd=filelog;filenode=#filenode|short#;file=#file#;style=gitweb">revisions</a></td></tr>"
12 fileellipses = "..."
13 changelogentry = changelogentry-gitweb.tmpl
14 searchentry = changelogentry-gitweb.tmpl
15 changeset = changeset-gitweb.tmpl
16 manifest = manifest-gitweb.tmpl
17 manifestdirentry = "<tr class="parity#parity#"><td style="font-family:monospace">drwxr-xr-x</td><td><a href="?mf=#manifest|short#;path=#path#;style=gitweb">#basename#/</a></td><td class="link"><a href="?mf=#manifest|short#;path=#path#;style=gitweb">manifest</a></td></tr>"
18 manifestfileentry = "<tr class="parity#parity#"><td style="font-family:monospace">#permissions|permissions#</td><td class="list"><a class="list" href="?f=#filenode|short#;file=#file#;style=gitweb">#basename#</a></td><td class="link"><a href="?f=#filenode|short#;file=#file#;style=gitweb">file</a> | <a href="?fl=#filenode|short#;file=#file#;style=gitweb">revisions</a> | <a href="?fa=#filenode|short#;file=#file#;style=gitweb">annotate</a></td></tr>"
19 filerevision = filerevision-gitweb.tmpl
20 fileannotate = fileannotate-gitweb.tmpl
21 filelog = filelog-gitweb.tmpl
22 fileline = "<div style="font-family:monospace; white-space: pre;" class="parity#parity#"><span class="linenr"> #linenumber#</span> #line|escape#</div>"
23 filelogentry = filelogentry-gitweb.tmpl
24 annotateline = "<tr style="font-family:monospace; white-space: pre;" class="parity#parity#"><td class="linenr" style="text-align: right;"><a href="?cs=#node|short#;style=gitweb">#author|obfuscate#@#rev#</a></td><td>#line|escape#</td></tr>"
25 difflineplus = "<div class="pre" style="color:#008800;">#line|escape#</div>"
26 difflineminus = "<div class="pre" style="color:#cc0000;">#line|escape#</div>"
27 difflineat = "<div class="pre" style="color:#990099;">#line|escape#</div>"
28 diffline = "<div class="pre">#line|escape#</div>"
29 changelogparent = "<tr><th class="parent">parent #rev#:</th><td class="parent"><a href="?cmd=changeset;node=#node#;style=gitweb">#node|short#</a></td></tr>"
30 changesetparent = "<tr><td>parent</td><td style="font-family:monospace"><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb">#node|short#</a></td></tr>"
31 filerevparent = "<tr><td class="metatag">parent:</td><td><a href="?cmd=file;file=#file#;filenode=#node#;style=gitweb">#node|short#</a></td></tr>"
32 fileannotateparent = "<tr><td class="metatag">parent:</td><td><a href="?cmd=annotate;file=#file#;filenode=#node#;style=gitweb">#node|short#</a></td></tr>"
33 tags = tags-gitweb.tmpl
34 tagentry = "<tr class="parity#parity#"><td><i>#date|age# ago</i></td><td><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb"><b>#tag#</b></a></td><td class="link"><a href="?cmd=changeset;node=#node|short#;style=gitweb">changeset</a> | <a href="?cmd=changelog;rev=#node|short#;style=gitweb">changelog</a> | <a href="?mf=#tagmanifest|short#;path=/;style=gitweb">manifest</a></td></tr>"
35 diffblock = "#lines#"
36 changelogtag = "<tr><th class="tag">tag:</th><td class="tag">#tag#</td></tr>"
37 changesettag = "<tr><td>tag</td><td>#tag#</td></tr>"
38 filediffparent = "<tr><th class="parent">parent #rev#:</th><td class="parent"><a href="?cmd=changeset;node=#node#;style=gitweb">#node|short#</a></td></tr>"
39 filelogparent = "<tr><td align="right">parent #rev#:&nbsp;</td><td><a href="?cmd=file;file=#file#;filenode=#node#;style=gitweb">#node|short#</a></td></tr>"
40 shortlog = shortlog-gitweb.tmpl
41 shortlogentry = "<tr class="parity#parity#"><td><i>#date|age# ago</i></td><td><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb"><b>#desc|firstline|escape#</b></a></td><td class="link"><a href="?cmd=changeset;node=#node|short#;style=gitweb">changeset</a> | <a href="?cmd=manifest;manifest=#manifest|short#;path=/;style=gitweb">manifest</a></td></tr>"
42 filelogentry = "<tr class="parity#parity#"><td><i>#date|age# ago</i></td><td><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb"><b>#desc|firstline|escape#</b></a></td><td class="link"><!-- FIXME: <a href="?fd=#node|short#;file=#file#;style=gitweb">diff</a> | --> <a href="?fa=#filenode|short#;file=#file#;style=gitweb">annotate</a></td></tr>"
@@ -0,0 +1,24 b''
1 #header#
2 <div class="page_nav">
3 <a href="?cmd=summary;style=gitweb">summary</a> | log | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=manifest;manifest=#manifest#;path=/;style=gitweb">manifest</a><br/>
4 </div>
5
6 <h2>searching for #query|escape#</h2>
7
8 <form>
9 search:
10 <input type="hidden" name="cmd" value="changelog">
11 <input type="hidden" name="style" value="gitweb">
12 <input name="rev" type="text" width="30" value="#query|escape#">
13 </form>
14
15 #entries#
16
17 <form>
18 search:
19 <input type="hidden" name="cmd" value="changelog">
20 <input type="hidden" name="style" value="gitweb">
21 <input name="rev" type="text" width="30">
22 </form>
23
24 #footer#
@@ -0,0 +1,13 b''
1 #header#
2
3 <div class="page_nav">
4 <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=changelog;style=gitweb">log</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=manifest;manifest=#manifest#;path=/;style=gitweb">manifest</a><br/>
5
6 #changenav%naventry#<br/>
7 </div>
8
9 <table cellspacing="0">
10 #entries#
11 </table>
12
13 #footer#
@@ -0,0 +1,34 b''
1 #header#
2 <title>#repo|escape#: Summary</title>
3 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
6 <body>
7
8 <div class="page_header">
9 <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / summary
10 </div>
11 <div class="page_nav">
12 summary | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=manifest;manifest=#manifest#;path=/;style=gitweb">manifest</a><br/>
13 </div>
14
15 <div class="title">&nbsp;</div>
16 <table cellspacing="0">
17 <tr><td>description</td><td>#desc#</td></tr>
18 <tr><td>owner</td><td>#owner#</td></tr>
19 <!-- <tr><td>last change</td><td>#lastchange|rfc822date#</td></tr> -->
20 </table>
21
22 <div><a class="title" href="?cmd=changelog;style=gitweb">changes</a></div>
23 <table cellspacing="0">
24 #shortlog#
25 <tr class="light"><td colspan="3"><a class="list" href="?cmd=changelog;style=gitweb">...</a></td></tr>
26 </table>
27
28 <div><a class="title" href="?cmd=tags;style=gitweb">tags</a></div>
29 <table cellspacing="0">
30 #tags#
31 <tr class="light"><td colspan="3"><a class="list" href="?cmd=tags;style=gitweb">...</a></td></tr>
32 </table>
33
34 #footer#
@@ -0,0 +1,21 b''
1 #header#
2 <title>#repo|escape#: Tags</title>
3 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
6 <body>
7
8 <div class="page_header">
9 <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / tags
10 </div>
11
12 <div class="page_nav">
13 <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | tags | <a href="?cmd=manifest;manifest=#manifest#;path=/;style=gitweb">manifest</a>
14 <br/>
15 </div>
16
17 <table cellspacing="0">
18 #entries%tagentry#
19 </table>
20
21 #footer#
@@ -0,0 +1,47 b''
1 # HG changeset patch
2 # User test
3 # Node ID b51ca55c20354097ca299529d18b5cd356976ba2
4 # Parent 0000000000000000000000000000000000000000
5 1
6
7 diff -r 000000000000 -r b51ca55c2035 foo
8 --- /dev/null Thu Jan 1 00:00:00 1970 +0000
9 +++ b/foo Thu Jan 1 00:00:00 1970 +0000
10 @@ -0,0 +1,1 @@
11 +a
12 # HG changeset patch
13 # User test
14 # Node ID 1e555b9b85c52e1e9e8175446f1ede507b2d1ebb
15 # Parent b51ca55c20354097ca299529d18b5cd356976ba2
16 2
17
18 diff -r b51ca55c2035 -r 1e555b9b85c5 foo
19 --- a/foo Thu Jan 1 00:00:00 1970 +0000
20 +++ /dev/null Thu Jan 1 00:00:00 1970 +0000
21 @@ -1,1 +0,0 @@
22 -a
23 changeset: 0:b51ca55c2035
24 user: test
25 date: Thu Jan 1 00:00:00 1970 +0000
26 summary: 1
27
28 diff -r 000000000000 -r b51ca55c2035 foo
29 --- /dev/null Thu Jan 1 00:00:00 1970 +0000
30 +++ b/foo Thu Jan 1 00:00:00 1970 +0000
31 @@ -0,0 +1,1 @@
32 +a
33
34
35 changeset: 1:1e555b9b85c5
36 tag: tip
37 user: test
38 date: Thu Jan 1 00:00:00 1970 +0000
39 summary: 2
40
41 diff -r b51ca55c2035 -r 1e555b9b85c5 foo
42 --- a/foo Thu Jan 1 00:00:00 1970 +0000
43 +++ /dev/null Thu Jan 1 00:00:00 1970 +0000
44 @@ -1,1 +0,0 @@
45 -a
46
47
@@ -66,7 +66,7 b' def walkchangerevs(ui, repo, pats, opts)'
66 window, we first walk forwards to gather data, then in the desired
66 window, we first walk forwards to gather data, then in the desired
67 order (usually backwards) to display it.
67 order (usually backwards) to display it.
68
68
69 This function returns an (iterator, getchange) pair. The
69 This function returns an (iterator, getchange, matchfn) tuple. The
70 getchange function returns the changelog entry for a numeric
70 getchange function returns the changelog entry for a numeric
71 revision. The iterator yields 3-tuples. They will be of one of
71 revision. The iterator yields 3-tuples. They will be of one of
72 the following forms:
72 the following forms:
@@ -82,10 +82,11 b' def walkchangerevs(ui, repo, pats, opts)'
82 "iter", rev, None: in-order traversal of the revs earlier iterated
82 "iter", rev, None: in-order traversal of the revs earlier iterated
83 over with "add" - use to display data'''
83 over with "add" - use to display data'''
84
84
85 files, matchfn, anypats, cwd = matchpats(repo, pats, opts)
86
85 if repo.changelog.count() == 0:
87 if repo.changelog.count() == 0:
86 return [], False
88 return [], False, matchfn
87
89
88 files, matchfn, anypats, cwd = matchpats(repo, pats, opts)
89 revs = map(int, revrange(ui, repo, opts['rev'] or ['tip:0']))
90 revs = map(int, revrange(ui, repo, opts['rev'] or ['tip:0']))
90 wanted = {}
91 wanted = {}
91 slowpath = anypats
92 slowpath = anypats
@@ -153,7 +154,7 b' def walkchangerevs(ui, repo, pats, opts)'
153 yield 'add', rev, fns
154 yield 'add', rev, fns
154 for rev in nrevs:
155 for rev in nrevs:
155 yield 'iter', rev, None
156 yield 'iter', rev, None
156 return iterate(), getchange
157 return iterate(), getchange, matchfn
157
158
158 revrangesep = ':'
159 revrangesep = ':'
159
160
@@ -1117,9 +1118,12 b' def diff(ui, repo, *pats, **opts):'
1117
1118
1118 def doexport(ui, repo, changeset, seqno, total, revwidth, opts):
1119 def doexport(ui, repo, changeset, seqno, total, revwidth, opts):
1119 node = repo.lookup(changeset)
1120 node = repo.lookup(changeset)
1120 prev, other = repo.changelog.parents(node)
1121 parents = [p for p in repo.changelog.parents(node) if p != nullid]
1122 prev = (parents and parents[0]) or nullid
1121 change = repo.changelog.read(node)
1123 change = repo.changelog.read(node)
1122
1124
1125 if opts['switch_parent']:
1126 parents.reverse()
1123 fp = make_file(repo, repo.changelog, opts['output'],
1127 fp = make_file(repo, repo.changelog, opts['output'],
1124 node=node, total=total, seqno=seqno,
1128 node=node, total=total, seqno=seqno,
1125 revwidth=revwidth)
1129 revwidth=revwidth)
@@ -1130,8 +1134,8 b' def doexport(ui, repo, changeset, seqno,'
1130 fp.write("# User %s\n" % change[1])
1134 fp.write("# User %s\n" % change[1])
1131 fp.write("# Node ID %s\n" % hex(node))
1135 fp.write("# Node ID %s\n" % hex(node))
1132 fp.write("# Parent %s\n" % hex(prev))
1136 fp.write("# Parent %s\n" % hex(prev))
1133 if other != nullid:
1137 if len(parents) > 1:
1134 fp.write("# Parent %s\n" % hex(other))
1138 fp.write("# Parent %s\n" % hex(parents[1]))
1135 fp.write(change[4].rstrip())
1139 fp.write(change[4].rstrip())
1136 fp.write("\n\n")
1140 fp.write("\n\n")
1137
1141
@@ -1162,6 +1166,9 b' def export(ui, repo, *changesets, **opts'
1162 Without the -a option, export will avoid generating diffs of files
1166 Without the -a option, export will avoid generating diffs of files
1163 it detects as binary. With -a, export will generate a diff anyway,
1167 it detects as binary. With -a, export will generate a diff anyway,
1164 probably with undesirable results.
1168 probably with undesirable results.
1169
1170 With the --switch-parent option, the diff will be against the second
1171 parent. It can be useful to review a merge.
1165 """
1172 """
1166 if not changesets:
1173 if not changesets:
1167 raise util.Abort(_("export requires at least one changeset"))
1174 raise util.Abort(_("export requires at least one changeset"))
@@ -1281,7 +1288,7 b' def grep(ui, repo, pattern, *pats, **opt'
1281
1288
1282 fstate = {}
1289 fstate = {}
1283 skip = {}
1290 skip = {}
1284 changeiter, getchange = walkchangerevs(ui, repo, pats, opts)
1291 changeiter, getchange, matchfn = walkchangerevs(ui, repo, pats, opts)
1285 count = 0
1292 count = 0
1286 incrementing = False
1293 incrementing = False
1287 for st, rev, fns in changeiter:
1294 for st, rev, fns in changeiter:
@@ -1544,7 +1551,7 b' def log(ui, repo, *pats, **opts):'
1544 self.write(*args)
1551 self.write(*args)
1545 def __getattr__(self, key):
1552 def __getattr__(self, key):
1546 return getattr(self.ui, key)
1553 return getattr(self.ui, key)
1547 changeiter, getchange = walkchangerevs(ui, repo, pats, opts)
1554 changeiter, getchange, matchfn = walkchangerevs(ui, repo, pats, opts)
1548 for st, rev, fns in changeiter:
1555 for st, rev, fns in changeiter:
1549 if st == 'window':
1556 if st == 'window':
1550 du = dui(ui)
1557 du = dui(ui)
@@ -1560,7 +1567,7 b' def log(ui, repo, *pats, **opts):'
1560
1567
1561 br = None
1568 br = None
1562 if opts['keyword']:
1569 if opts['keyword']:
1563 changes = repo.changelog.read(repo.changelog.node(rev))
1570 changes = getchange(rev)
1564 miss = 0
1571 miss = 0
1565 for k in [kw.lower() for kw in opts['keyword']]:
1572 for k in [kw.lower() for kw in opts['keyword']]:
1566 if not (k in changes[1].lower() or
1573 if not (k in changes[1].lower() or
@@ -1577,7 +1584,7 b' def log(ui, repo, *pats, **opts):'
1577 show_changeset(du, repo, rev, brinfo=br)
1584 show_changeset(du, repo, rev, brinfo=br)
1578 if opts['patch']:
1585 if opts['patch']:
1579 prev = (parents and parents[0]) or nullid
1586 prev = (parents and parents[0]) or nullid
1580 dodiff(du, du, repo, prev, changenode, fns)
1587 dodiff(du, du, repo, prev, changenode, match=matchfn)
1581 du.write("\n\n")
1588 du.write("\n\n")
1582 elif st == 'iter':
1589 elif st == 'iter':
1583 for args in du.hunk[rev]:
1590 for args in du.hunk[rev]:
@@ -2122,7 +2129,8 b' def undo(ui, repo):'
2122 """
2129 """
2123 repo.undo()
2130 repo.undo()
2124
2131
2125 def update(ui, repo, node=None, merge=False, clean=False, branch=None):
2132 def update(ui, repo, node=None, merge=False, clean=False, force=None,
2133 branch=None):
2126 """update or merge working directory
2134 """update or merge working directory
2127
2135
2128 Update the working directory to the specified revision.
2136 Update the working directory to the specified revision.
@@ -2159,7 +2167,7 b' def update(ui, repo, node=None, merge=Fa'
2159 return 1
2167 return 1
2160 else:
2168 else:
2161 node = node and repo.lookup(node) or repo.changelog.tip()
2169 node = node and repo.lookup(node) or repo.changelog.tip()
2162 return repo.update(node, allow=merge, force=clean)
2170 return repo.update(node, allow=merge, force=clean, forcemerge=force)
2163
2171
2164 def verify(ui, repo):
2172 def verify(ui, repo):
2165 """verify the integrity of the repository
2173 """verify the integrity of the repository
@@ -2256,7 +2264,8 b' table = {'
2256 "^export":
2264 "^export":
2257 (export,
2265 (export,
2258 [('o', 'output', "", _('print output to file with formatted name')),
2266 [('o', 'output', "", _('print output to file with formatted name')),
2259 ('a', 'text', None, _('treat all files as text'))],
2267 ('a', 'text', None, _('treat all files as text')),
2268 ('', 'switch-parent', None, _('diff against the second parent'))],
2260 "hg export [-a] [-o OUTFILE] REV..."),
2269 "hg export [-a] [-o OUTFILE] REV..."),
2261 "forget":
2270 "forget":
2262 (forget,
2271 (forget,
@@ -2404,8 +2413,9 b' table = {'
2404 (update,
2413 (update,
2405 [('b', 'branch', "", _('checkout the head of a specific branch')),
2414 [('b', 'branch', "", _('checkout the head of a specific branch')),
2406 ('m', 'merge', None, _('allow merging of branches')),
2415 ('m', 'merge', None, _('allow merging of branches')),
2407 ('C', 'clean', None, _('overwrite locally modified files'))],
2416 ('C', 'clean', None, _('overwrite locally modified files')),
2408 _('hg update [-b TAG] [-m] [-C] [REV]')),
2417 ('f', 'force', None, _('force a merge with outstanding changes'))],
2418 _('hg update [-b TAG] [-m] [-C] [-f] [REV]')),
2409 "verify": (verify, [], _('hg verify')),
2419 "verify": (verify, [], _('hg verify')),
2410 "version": (show_version, [], _('hg version')),
2420 "version": (show_version, [], _('hg version')),
2411 }
2421 }
@@ -632,6 +632,8 b' class hgweb(object):'
632 for k,n in i:
632 for k,n in i:
633 yield {"parity": parity,
633 yield {"parity": parity,
634 "tag": k,
634 "tag": k,
635 "tagmanifest": hex(cl.read(n)[0]),
636 "date": cl.read(n)[2],
635 "node": hex(n)}
637 "node": hex(n)}
636 parity = 1 - parity
638 parity = 1 - parity
637
639
@@ -639,6 +641,76 b' class hgweb(object):'
639 manifest=hex(mf),
641 manifest=hex(mf),
640 entries=entries)
642 entries=entries)
641
643
644 def summary(self):
645 cl = self.repo.changelog
646 mf = cl.read(cl.tip())[0]
647
648 i = self.repo.tagslist()
649 i.reverse()
650
651 def tagentries(**map):
652 parity = 0
653 count = 0
654 for k,n in i:
655 if k == "tip": # skip tip
656 continue;
657
658 count += 1
659 if count > 10: # limit to 10 tags
660 break;
661
662 c = cl.read(n)
663 m = c[0]
664 t = c[2]
665
666 yield self.t("tagentry",
667 parity = parity,
668 tag = k,
669 node = hex(n),
670 date = t,
671 tagmanifest = hex(m))
672 parity = 1 - parity
673
674 def changelist(**map):
675 parity = 0
676 cl = self.repo.changelog
677 l = [] # build a list in forward order for efficiency
678 for i in range(start, end):
679 n = cl.node(i)
680 changes = cl.read(n)
681 hn = hex(n)
682 t = changes[2]
683
684 l.insert(0, self.t(
685 'shortlogentry',
686 parity = parity,
687 author = changes[1],
688 manifest = hex(changes[0]),
689 desc = changes[4],
690 date = t,
691 rev = i,
692 node = hn))
693 parity = 1 - parity
694
695 yield l
696
697 cl = self.repo.changelog
698 mf = cl.read(cl.tip())[0]
699 count = cl.count()
700 start = max(0, count - self.maxchanges)
701 end = min(count, start + self.maxchanges)
702 pos = end - 1
703
704 yield self.t("summary",
705 desc = self.repo.ui.config("web", "description", "unknown"),
706 owner = (self.repo.ui.config("ui", "username") or # preferred
707 self.repo.ui.config("web", "contact") or # deprecated
708 self.repo.ui.config("web", "author", "unknown")), # also
709 lastchange = (0, 0), # FIXME
710 manifest = hex(mf),
711 tags = tagentries,
712 shortlog = changelist)
713
642 def filediff(self, file, changeset):
714 def filediff(self, file, changeset):
643 cl = self.repo.changelog
715 cl = self.repo.changelog
644 n = self.repo.lookup(changeset)
716 n = self.repo.lookup(changeset)
@@ -798,6 +870,9 b' class hgweb(object):'
798 elif req.form['cmd'][0] == 'tags':
870 elif req.form['cmd'][0] == 'tags':
799 req.write(self.tags())
871 req.write(self.tags())
800
872
873 elif req.form['cmd'][0] == 'summary':
874 req.write(self.summary())
875
801 elif req.form['cmd'][0] == 'filediff':
876 elif req.form['cmd'][0] == 'filediff':
802 req.write(self.filediff(req.form['file'][0], req.form['node'][0]))
877 req.write(self.filediff(req.form['file'][0], req.form['node'][0]))
803
878
@@ -1364,7 +1364,7 b' class localrepository(object):'
1364 return
1364 return
1365
1365
1366 def update(self, node, allow=False, force=False, choose=None,
1366 def update(self, node, allow=False, force=False, choose=None,
1367 moddirstate=True):
1367 moddirstate=True, forcemerge=False):
1368 pl = self.dirstate.parents()
1368 pl = self.dirstate.parents()
1369 if not force and pl[1] != nullid:
1369 if not force and pl[1] != nullid:
1370 self.ui.warn(_("aborting: outstanding uncommitted merges\n"))
1370 self.ui.warn(_("aborting: outstanding uncommitted merges\n"))
@@ -1384,6 +1384,18 b' class localrepository(object):'
1384
1384
1385 (c, a, d, u) = self.changes()
1385 (c, a, d, u) = self.changes()
1386
1386
1387 if allow and not forcemerge:
1388 if c or a or d:
1389 raise util.Abort(_("outstanding uncommited changes"))
1390 if not forcemerge and not force:
1391 for f in u:
1392 if f in m2:
1393 t1 = self.wread(f)
1394 t2 = self.file(f).read(m2[f])
1395 if cmp(t1, t2) != 0:
1396 raise util.Abort(_("'%s' already exists in the working"
1397 " dir and differs from remote") % f)
1398
1387 # is this a jump, or a merge? i.e. is there a linear path
1399 # is this a jump, or a merge? i.e. is there a linear path
1388 # from p1 to p2?
1400 # from p1 to p2?
1389 linear_path = (pa == p1 or pa == p2)
1401 linear_path = (pa == p1 or pa == p2)
@@ -145,7 +145,7 b' class ui(object):'
145 os.environ.get("EDITOR", "vi"))
145 os.environ.get("EDITOR", "vi"))
146
146
147 os.environ["HGUSER"] = self.username()
147 os.environ["HGUSER"] = self.username()
148 util.system("%s %s" % (editor, name), errprefix=_("edit failed"))
148 util.system("%s \"%s\"" % (editor, name), errprefix=_("edit failed"))
149
149
150 t = open(name).read()
150 t = open(name).read()
151 t = re.sub("(?m)^HG:.*\n", "", t)
151 t = re.sub("(?m)^HG:.*\n", "", t)
@@ -40,8 +40,10 b' echo This is file c1 > c'
40 hg add c
40 hg add c
41 hg commit -m "commit #2" -d "0 0"
41 hg commit -m "commit #2" -d "0 0"
42 echo This is file b2 > b
42 echo This is file b2 > b
43 echo %% merge should fail
44 env HGMERGE=../merge hg update -m 1
43 echo %% merge of b expected
45 echo %% merge of b expected
44 env HGMERGE=../merge hg update -m 1
46 env HGMERGE=../merge hg update -f -m 1
45 cd ..; /bin/rm -rf t
47 cd ..; /bin/rm -rf t
46 echo %%
48 echo %%
47
49
@@ -65,8 +67,10 b' echo \'Contents of b should be "this is f'
65 cat b
67 cat b
66
68
67 echo This is file b22 > b
69 echo This is file b22 > b
70 echo %% merge fails
71 env HGMERGE=../merge hg update -m 2
68 echo %% merge expected!
72 echo %% merge expected!
69 env HGMERGE=../merge hg update -m 2
73 env HGMERGE=../merge hg update -f -m 2
70 cd ..; /bin/rm -rf t
74 cd ..; /bin/rm -rf t
71
75
72 mkdir t
76 mkdir t
@@ -85,6 +89,8 b' echo This is file c1 > c'
85 hg add c
89 hg add c
86 hg commit -m "commit #3" -d "0 0"
90 hg commit -m "commit #3" -d "0 0"
87 echo This is file b33 > b
91 echo This is file b33 > b
88 echo %% merge of b expected
92 echo %% merge of b should fail
89 env HGMERGE=../merge hg update -m 2
93 env HGMERGE=../merge hg update -m 2
94 echo %% merge of b expected
95 env HGMERGE=../merge hg update -f -m 2
90 cd ..; /bin/rm -rf t
96 cd ..; /bin/rm -rf t
@@ -1,13 +1,19 b''
1 %% no merges expected
1 %% no merges expected
2 %% merge should fail
3 abort: 'b' already exists in the working dir and differs from remote
2 %% merge of b expected
4 %% merge of b expected
3 merging for b
5 merging for b
4 merging b
6 merging b
5 %%
7 %%
6 Contents of b should be "this is file b1"
8 Contents of b should be "this is file b1"
7 This is file b1
9 This is file b1
10 %% merge fails
11 abort: outstanding uncommited changes
8 %% merge expected!
12 %% merge expected!
9 merging for b
13 merging for b
10 merging b
14 merging b
15 %% merge of b should fail
16 abort: outstanding uncommited changes
11 %% merge of b expected
17 %% merge of b expected
12 merging for b
18 merging for b
13 merging b
19 merging b
@@ -8,6 +8,10 b' hg commit -m 1 -d "0 0"'
8 rm foo
8 rm foo
9 hg remove foo
9 hg remove foo
10 hg commit -m 2 -d "0 0"
10 hg commit -m 2 -d "0 0"
11 hg export 0
12 hg export 1
13 hg log -p -r 0
14 hg log -p -r 1
11
15
12 cd ..
16 cd ..
13 hg clone a b
17 hg clone a b
@@ -25,7 +25,8 b' cd ../r2'
25 hg -q pull ../r1
25 hg -q pull ../r1
26 hg status
26 hg status
27 hg --debug up
27 hg --debug up
28 hg --debug up -m
28 hg --debug up -m || echo failed
29 hg --debug up -f -m
29 hg parents
30 hg parents
30 hg -v history
31 hg -v history
31 hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
32 hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
@@ -16,6 +16,8 b' getting b'
16 merging a
16 merging a
17 resolving a
17 resolving a
18 file a: my b789fdd96dc2 other d730145abbf9 ancestor b789fdd96dc2
18 file a: my b789fdd96dc2 other d730145abbf9 ancestor b789fdd96dc2
19 abort: outstanding uncommited changes
20 failed
19 resolving manifests
21 resolving manifests
20 force None allow 1 moddirstate True linear True
22 force None allow 1 moddirstate True linear True
21 ancestor 1165e8bd193e local 1165e8bd193e remote 1165e8bd193e
23 ancestor 1165e8bd193e local 1165e8bd193e remote 1165e8bd193e
General Comments 0
You need to be logged in to leave comments. Login now