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"> </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#: </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"> </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 |
|
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 |
p |
|
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( |
|
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 = |
|
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, fn |
|
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, |
|
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 |
|
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