Show More
@@ -1,61 +1,61 | |||
|
1 | 1 | {header} |
|
2 | 2 | <title>{repo|escape}: changeset {rev}:{node|short}</title> |
|
3 | 3 | <link rel="alternate" type="application/atom+xml" |
|
4 | 4 | href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> |
|
5 | 5 | <link rel="alternate" type="application/rss+xml" |
|
6 | 6 | href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> |
|
7 | 7 | </head> |
|
8 | 8 | <body> |
|
9 | 9 | |
|
10 | 10 | <div class="page_header"> |
|
11 | 11 | <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a> |
|
12 | 12 | <a href="/">Mercurial</a> {pathdef%breadcrumb} / changeset |
|
13 | 13 | </div> |
|
14 | 14 | |
|
15 | 15 | <div class="page_nav"> |
|
16 | 16 | <div> |
|
17 | 17 | <a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> | |
|
18 | 18 | <a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a> | |
|
19 | 19 | <a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a> | |
|
20 | 20 | <a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a> | |
|
21 | 21 | <a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> | |
|
22 | 22 | <a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> | |
|
23 | 23 | <a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> | |
|
24 | 24 | <a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a> | |
|
25 | 25 | changeset | |
|
26 | 26 | <a href="{url|urlescape}raw-rev/{symrev}">raw</a> {archives%archiveentry} | |
|
27 | 27 | <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a> |
|
28 | 28 | </div> |
|
29 | 29 | {searchform} |
|
30 | 30 | </div> |
|
31 | 31 | |
|
32 | 32 | <div> |
|
33 | 33 | <a class="title" href="{url|urlescape}raw-rev/{node|short}"> |
|
34 | 34 | {desc|strip|escape|firstline|nonempty} |
|
35 | 35 | {alltags} |
|
36 | 36 | </a> |
|
37 | 37 | </div> |
|
38 | 38 | <div class="title_text"> |
|
39 | 39 | <table cellspacing="0"> |
|
40 | 40 | <tr><td>author</td><td>{author|obfuscate}</td></tr> |
|
41 | 41 | <tr><td></td><td class="date age">{date|rfc822date}</td></tr> |
|
42 | 42 | {branch%changesetbranch} |
|
43 | 43 | <tr> |
|
44 | 44 | <td>changeset {rev}</td> |
|
45 | 45 | <td style="font-family:monospace"><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> |
|
46 | 46 | </tr> |
|
47 |
{if(obsolete, |
|
|
47 | {if(obsolete, succsandmarkers%obsfateentry)} | |
|
48 | 48 | {ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)} |
|
49 | 49 | {child%changesetchild} |
|
50 | 50 | </table></div> |
|
51 | 51 | |
|
52 | 52 | <div class="page_body description">{desc|strip|escape|websub|nonempty}</div> |
|
53 | 53 | <div class="list_head"></div> |
|
54 | 54 | <div class="title_text"> |
|
55 | 55 | <table cellspacing="0"> |
|
56 | 56 | {files} |
|
57 | 57 | </table></div> |
|
58 | 58 | |
|
59 | 59 | <div class="page_body diffblocks">{diff}</div> |
|
60 | 60 | |
|
61 | 61 | {footer} |
@@ -1,363 +1,367 | |||
|
1 | 1 | default = 'summary' |
|
2 | 2 | mimetype = 'text/html; charset={encoding}' |
|
3 | 3 | header = header.tmpl |
|
4 | 4 | footer = footer.tmpl |
|
5 | 5 | search = search.tmpl |
|
6 | 6 | changelog = changelog.tmpl |
|
7 | 7 | summary = summary.tmpl |
|
8 | 8 | error = error.tmpl |
|
9 | 9 | notfound = notfound.tmpl |
|
10 | 10 | |
|
11 | 11 | help = help.tmpl |
|
12 | 12 | helptopics = helptopics.tmpl |
|
13 | 13 | |
|
14 | 14 | helpentry = ' |
|
15 | 15 | <tr><td> |
|
16 | 16 | <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}"> |
|
17 | 17 | {if(basename, '{basename|escape}', '{topic|escape}')} |
|
18 | 18 | </a> |
|
19 | 19 | </td><td> |
|
20 | 20 | {summary|escape} |
|
21 | 21 | </td></tr>' |
|
22 | 22 | |
|
23 | 23 | naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
24 | 24 | navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
25 | 25 | navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
26 | 26 | filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
27 | 27 | filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' |
|
28 | 28 | filenodelink = ' |
|
29 | 29 | <tr class="parity{parity}"> |
|
30 | 30 | <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> |
|
31 | 31 | <td></td> |
|
32 | 32 | <td class="link"> |
|
33 | 33 | <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | |
|
34 | 34 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | |
|
35 | 35 | <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | |
|
36 | 36 | <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> | |
|
37 | 37 | <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
|
38 | 38 | </td> |
|
39 | 39 | </tr>' |
|
40 | 40 | filenolink = ' |
|
41 | 41 | <tr class="parity{parity}"> |
|
42 | 42 | <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> |
|
43 | 43 | <td></td> |
|
44 | 44 | <td class="link"> |
|
45 | 45 | file | |
|
46 | 46 | annotate | |
|
47 | 47 | <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | |
|
48 | 48 | <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> | |
|
49 | 49 | <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
|
50 | 50 | </td> |
|
51 | 51 | </tr>' |
|
52 | 52 | |
|
53 | 53 | nav = '{before%naventry} {after%naventry}' |
|
54 | 54 | navshort = '{before%navshortentry}{after%navshortentry}' |
|
55 | 55 | navgraph = '{before%navgraphentry}{after%navgraphentry}' |
|
56 | 56 | filenav = '{before%filenaventry}{after%filenaventry}' |
|
57 | 57 | |
|
58 | 58 | fileellipses = '...' |
|
59 | 59 | changelogentry = changelogentry.tmpl |
|
60 | 60 | searchentry = changelogentry.tmpl |
|
61 | 61 | changeset = changeset.tmpl |
|
62 | 62 | manifest = manifest.tmpl |
|
63 | 63 | direntry = ' |
|
64 | 64 | <tr class="parity{parity}"> |
|
65 | 65 | <td style="font-family:monospace">drwxr-xr-x</td> |
|
66 | 66 | <td style="font-family:monospace"></td> |
|
67 | 67 | <td style="font-family:monospace"></td> |
|
68 | 68 | <td> |
|
69 | 69 | <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a> |
|
70 | 70 | <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a> |
|
71 | 71 | </td> |
|
72 | 72 | <td class="link"> |
|
73 | 73 | <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a> |
|
74 | 74 | </td> |
|
75 | 75 | </tr>' |
|
76 | 76 | fileentry = ' |
|
77 | 77 | <tr class="parity{parity}"> |
|
78 | 78 | <td style="font-family:monospace">{permissions|permissions}</td> |
|
79 | 79 | <td style="font-family:monospace" align=right>{date|isodate}</td> |
|
80 | 80 | <td style="font-family:monospace" align=right>{size}</td> |
|
81 | 81 | <td class="list"> |
|
82 | 82 | <a class="list" href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a> |
|
83 | 83 | </td> |
|
84 | 84 | <td class="link"> |
|
85 | 85 | <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> | |
|
86 | 86 | <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | |
|
87 | 87 | <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
|
88 | 88 | </td> |
|
89 | 89 | </tr>' |
|
90 | 90 | filerevision = filerevision.tmpl |
|
91 | 91 | fileannotate = fileannotate.tmpl |
|
92 | 92 | filediff = filediff.tmpl |
|
93 | 93 | filecomparison = filecomparison.tmpl |
|
94 | 94 | filelog = filelog.tmpl |
|
95 | 95 | fileline = ' |
|
96 | 96 | <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>' |
|
97 | 97 | annotateline = ' |
|
98 | 98 | <tr id="{lineid}" style="font-family:monospace" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}"> |
|
99 | 99 | <td class="annotate linenr parity{blockparity}" style="text-align: right;"> |
|
100 | 100 | {if(blockhead, |
|
101 | 101 | '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"> |
|
102 | 102 | {rev} |
|
103 | 103 | </a>')} |
|
104 | 104 | <div class="annotate-info"> |
|
105 | 105 | <div> |
|
106 | 106 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"> |
|
107 | 107 | {node|short}</a> |
|
108 | 108 | {desc|escape|firstline} |
|
109 | 109 | </div> |
|
110 | 110 | <div><em>{author|obfuscate}</em></div> |
|
111 | 111 | <div>parents: {parents%annotateparent}</div> |
|
112 | 112 | <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
|
113 | 113 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
|
114 | 114 | </div> |
|
115 | 115 | </td> |
|
116 | 116 | <td class="followlines-btn-parent"><pre><a class="linenr" href="#{lineid}">{linenumber}</a></pre></td> |
|
117 | 117 | <td><pre>{line|escape}</pre></td> |
|
118 | 118 | </tr>' |
|
119 | 119 | annotateparent = ' |
|
120 | 120 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>' |
|
121 | 121 | difflineplus = ' |
|
122 | 122 | <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>' |
|
123 | 123 | difflineminus = ' |
|
124 | 124 | <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>' |
|
125 | 125 | difflineat = ' |
|
126 | 126 | <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>' |
|
127 | 127 | diffline = ' |
|
128 | 128 | <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>' |
|
129 | 129 | |
|
130 | 130 | comparisonblock =' |
|
131 | 131 | <tbody class="block"> |
|
132 | 132 | {lines} |
|
133 | 133 | </tbody>' |
|
134 | 134 | comparisonline = ' |
|
135 | 135 | <tr id="{lineid}" style="font-family:monospace"> |
|
136 | 136 | <td class="{type}"><pre><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td> |
|
137 | 137 | <td class="{type}"><pre><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td> |
|
138 | 138 | </tr>' |
|
139 | 139 | |
|
140 | 140 | changesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' |
|
141 | 141 | changesetbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>' |
|
142 | 142 | changesetparent = ' |
|
143 | 143 | <tr> |
|
144 | 144 | <td>parent {rev}</td> |
|
145 | 145 | <td style="font-family:monospace"> |
|
146 | 146 | {changesetlink} |
|
147 | 147 | </td> |
|
148 | 148 | </tr>' |
|
149 | 149 | changesetparentdiff = ' |
|
150 | 150 | <tr> |
|
151 | 151 | <td>parent {rev}</td> |
|
152 | 152 | <td style="font-family:monospace"> |
|
153 | 153 | {changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')} |
|
154 | 154 | </td> |
|
155 | 155 | </tr>' |
|
156 | 156 | difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>' |
|
157 | 157 | filerevbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>' |
|
158 | 158 | filerevparent = ' |
|
159 | 159 | <tr> |
|
160 | 160 | <td>parent {rev}</td> |
|
161 | 161 | <td style="font-family:monospace"> |
|
162 | 162 | <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> |
|
163 | 163 | {rename%filerename}{node|short} |
|
164 | 164 | </a> |
|
165 | 165 | </td> |
|
166 | 166 | </tr>' |
|
167 | 167 | filerename = '{file|escape}@' |
|
168 | 168 | filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>' |
|
169 | 169 | fileannotateparent = ' |
|
170 | 170 | <tr> |
|
171 | 171 | <td>parent {rev}</td> |
|
172 | 172 | <td style="font-family:monospace"> |
|
173 | 173 | <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> |
|
174 | 174 | {rename%filerename}{node|short} |
|
175 | 175 | </a> |
|
176 | 176 | </td> |
|
177 | 177 | </tr>' |
|
178 | 178 | changesetchild = ' |
|
179 | 179 | <tr> |
|
180 | 180 | <td>child {rev}</td> |
|
181 | 181 | <td style="font-family:monospace"> |
|
182 | 182 | <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> |
|
183 | 183 | </td> |
|
184 | 184 | </tr>' |
|
185 | 185 | filerevchild = ' |
|
186 | 186 | <tr> |
|
187 | 187 | <td>child {rev}</td> |
|
188 | 188 | <td style="font-family:monospace"> |
|
189 | 189 | <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> |
|
190 | 190 | </tr>' |
|
191 | 191 | fileannotatechild = ' |
|
192 | 192 | <tr> |
|
193 | 193 | <td>child {rev}</td> |
|
194 | 194 | <td style="font-family:monospace"> |
|
195 | 195 | <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> |
|
196 | 196 | </tr>' |
|
197 | 197 | tags = tags.tmpl |
|
198 | 198 | tagentry = ' |
|
199 | 199 | <tr class="parity{parity}"> |
|
200 | 200 | <td class="age"><i class="age">{date|rfc822date}</i></td> |
|
201 | 201 | <td><a class="list" href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td> |
|
202 | 202 | <td class="link"> |
|
203 | 203 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | |
|
204 | 204 | <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> | |
|
205 | 205 | <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a> |
|
206 | 206 | </td> |
|
207 | 207 | </tr>' |
|
208 | 208 | bookmarks = bookmarks.tmpl |
|
209 | 209 | bookmarkentry = ' |
|
210 | 210 | <tr class="parity{parity}"> |
|
211 | 211 | <td class="age"><i class="age">{date|rfc822date}</i></td> |
|
212 | 212 | <td><a class="list" href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td> |
|
213 | 213 | <td class="link"> |
|
214 | 214 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | |
|
215 | 215 | <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> | |
|
216 | 216 | <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a> |
|
217 | 217 | </td> |
|
218 | 218 | </tr>' |
|
219 | 219 | branches = branches.tmpl |
|
220 | 220 | branchentry = ' |
|
221 | 221 | <tr class="parity{parity}"> |
|
222 | 222 | <td class="age"><i class="age">{date|rfc822date}</i></td> |
|
223 | 223 | <td class="{status}"><a class="list" href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}"><b>{branch|escape}</b></a></td> |
|
224 | 224 | <td class="link"> |
|
225 | 225 | <a href="{url|urlescape}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> | |
|
226 | 226 | <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> | |
|
227 | 227 | <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a> |
|
228 | 228 | </td> |
|
229 | 229 | </tr>' |
|
230 | 230 | diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>' |
|
231 | 231 | filediffparent = ' |
|
232 | 232 | <tr> |
|
233 | 233 | <td>parent {rev}</td> |
|
234 | 234 | <td style="font-family:monospace"> |
|
235 | 235 | <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> |
|
236 | 236 | {node|short} |
|
237 | 237 | </a> |
|
238 | 238 | </td> |
|
239 | 239 | </tr>' |
|
240 | 240 | filecompparent = ' |
|
241 | 241 | <tr> |
|
242 | 242 | <td>parent {rev}</td> |
|
243 | 243 | <td style="font-family:monospace"> |
|
244 | 244 | <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> |
|
245 | 245 | {node|short} |
|
246 | 246 | </a> |
|
247 | 247 | </td> |
|
248 | 248 | </tr>' |
|
249 | 249 | filediffchild = ' |
|
250 | 250 | <tr> |
|
251 | 251 | <td>child {rev}</td> |
|
252 | 252 | <td style="font-family:monospace"> |
|
253 | 253 | <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> |
|
254 | 254 | </td> |
|
255 | 255 | </tr>' |
|
256 | 256 | filecompchild = ' |
|
257 | 257 | <tr> |
|
258 | 258 | <td>child {rev}</td> |
|
259 | 259 | <td style="font-family:monospace"> |
|
260 | 260 | <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> |
|
261 | 261 | </td> |
|
262 | 262 | </tr>' |
|
263 | 263 | shortlog = shortlog.tmpl |
|
264 | 264 | graph = graph.tmpl |
|
265 | 265 | graphentry = graphentry.tmpl |
|
266 | 266 | phasetag = '{ifeq(phase, 'public', '', '<span class="phasetag" title="{phase|escape}">{phase|escape}</span> ')}' |
|
267 | 267 | obsoletetag = '{if(obsolete, '<span class="obsoletetag" title="obsolete">obsolete</span> ')}' |
|
268 | 268 | instabilitytag = '<span class="instabilitytag" title="{instability|escape}">{instability|escape}</span> ' |
|
269 | 269 | tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> ' |
|
270 | 270 | branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> ' |
|
271 | 271 | inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> ' |
|
272 | 272 | bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> ' |
|
273 | 273 | alltags = '<span class="logtags">{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>' |
|
274 | 274 | successorlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' |
|
275 | 275 | obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}' |
|
276 | 276 | obsfateverb = '{obsfateverb(successors, markers)}' |
|
277 | 277 | obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}' |
|
278 | 278 | obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}' |
|
279 | 279 | obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}' |
|
280 | obsfateentry = '{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}' | |
|
280 | obsfateentry = ' | |
|
281 | <tr> | |
|
282 | <td>obsolete</td> | |
|
283 | <td>{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}</td> | |
|
284 | </tr>' | |
|
281 | 285 | shortlogentry = ' |
|
282 | 286 | <tr class="parity{parity}"> |
|
283 | 287 | <td class="age"><i class="age">{date|rfc822date}</i></td> |
|
284 | 288 | <td><i>{author|person}</i></td> |
|
285 | 289 | <td> |
|
286 | 290 | <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}"> |
|
287 | 291 | <b>{desc|strip|firstline|escape|nonempty}</b> |
|
288 | 292 | {alltags} |
|
289 | 293 | </a> |
|
290 | 294 | </td> |
|
291 | 295 | <td class="link" nowrap> |
|
292 | 296 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | |
|
293 | 297 | <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a> |
|
294 | 298 | </td> |
|
295 | 299 | </tr>' |
|
296 | 300 | filelogentry = ' |
|
297 | 301 | <tr class="parity{if(patch, '1', '{parity}')}"> |
|
298 | 302 | <td class="age"><i class="age">{date|rfc822date}</i></td> |
|
299 | 303 | <td><i>{author|person}</i></td> |
|
300 | 304 | <td> |
|
301 | 305 | <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}"> |
|
302 | 306 | <b>{desc|strip|firstline|escape|nonempty}</b> |
|
303 | 307 | {alltags} |
|
304 | 308 | </a> |
|
305 | 309 | </td> |
|
306 | 310 | <td class="link"> |
|
307 | 311 | <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | |
|
308 | 312 | <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | |
|
309 | 313 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
|
310 | 314 | {rename%filelogrename} |
|
311 | 315 | </td> |
|
312 | 316 | </tr> |
|
313 | 317 | {if(patch, '<tr><td colspan="4">{diff}</td></tr>')}' |
|
314 | 318 | archiveentry = ' | <a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a> ' |
|
315 | 319 | indexentry = ' |
|
316 | 320 | <tr class="parity{parity}"> |
|
317 | 321 | <td> |
|
318 | 322 | <a class="list" href="{url|urlescape}{sessionvars%urlparameter}"> |
|
319 | 323 | <b>{name|escape}</b> |
|
320 | 324 | </a> |
|
321 | 325 | </td> |
|
322 | 326 | <td>{description}</td> |
|
323 | 327 | <td>{contact|obfuscate}</td> |
|
324 | 328 | <td class="age">{lastchange|rfc822date}</td> |
|
325 | 329 | <td class="indexlinks">{archives%indexarchiveentry}</td> |
|
326 | 330 | <td>{if(isdirectory, '', |
|
327 | 331 | '<div class="rss_logo"> |
|
328 | 332 | <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a> |
|
329 | 333 | </div>' |
|
330 | 334 | )} |
|
331 | 335 | </td> |
|
332 | 336 | </tr>\n' |
|
333 | 337 | indexarchiveentry = ' <a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> ' |
|
334 | 338 | index = index.tmpl |
|
335 | 339 | urlparameter = '{separator}{name}={value|urlescape}' |
|
336 | 340 | hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />' |
|
337 | 341 | breadcrumb = '> <a href="{url|urlescape}">{name|escape}</a> ' |
|
338 | 342 | |
|
339 | 343 | searchform = ' |
|
340 | 344 | <div class="search"> |
|
341 | 345 | <form id="searchform" action="{url|urlescape}log"> |
|
342 | 346 | {sessionvars%hiddenformentry} |
|
343 | 347 | <input name="rev" type="text" value="{query|escape}" size="40" /> |
|
344 | 348 | <div id="hint">{searchhint}</div> |
|
345 | 349 | </form> |
|
346 | 350 | </div>' |
|
347 | 351 | searchhint = 'Find changesets by keywords (author, files, the commit message), revision |
|
348 | 352 | number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.' |
|
349 | 353 | |
|
350 | 354 | diffoptsform = ' |
|
351 | 355 | <form id="diffopts-form" |
|
352 | 356 | data-ignorews="{if(get(diffopts, 'ignorews'), '1', '0')}" |
|
353 | 357 | data-ignorewsamount="{if(get(diffopts, 'ignorewsamount'), '1', '0')}" |
|
354 | 358 | data-ignorewseol="{if(get(diffopts, 'ignorewseol'), '1', '0')}" |
|
355 | 359 | data-ignoreblanklines="{if(get(diffopts, 'ignoreblanklines'), '1', '0')}"> |
|
356 | 360 | <span>Ignore whitespace changes - </span> |
|
357 | 361 | <span>Everywhere:</span> |
|
358 | 362 | <input id="ignorews-checkbox" type="checkbox" /> |
|
359 | 363 | <span>Within whitespace:</span> |
|
360 | 364 | <input id="ignorewsamount-checkbox" type="checkbox" /> |
|
361 | 365 | <span>At end of lines:</span> |
|
362 | 366 | <input id="ignorewseol-checkbox" type="checkbox" /> |
|
363 | 367 | </form>' |
@@ -1,66 +1,66 | |||
|
1 | 1 | {header} |
|
2 | 2 | <title>{repo|escape}: changeset {rev}:{node|short}</title> |
|
3 | 3 | <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> |
|
4 | 4 | <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> |
|
5 | 5 | </head> |
|
6 | 6 | |
|
7 | 7 | <body> |
|
8 | 8 | <div id="container"> |
|
9 | 9 | <div class="page-header"> |
|
10 | 10 | <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / changeset</h1> |
|
11 | 11 | |
|
12 | 12 | {searchform} |
|
13 | 13 | |
|
14 | 14 | <ul class="page-nav"> |
|
15 | 15 | <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li> |
|
16 | 16 | <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li> |
|
17 | 17 | <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li> |
|
18 | 18 | <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> |
|
19 | 19 | <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> |
|
20 | 20 | <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> |
|
21 | 21 | <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> |
|
22 | 22 | <li><a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a></li> |
|
23 | 23 | <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> |
|
24 | 24 | </ul> |
|
25 | 25 | </div> |
|
26 | 26 | |
|
27 | 27 | <ul class="submenu"> |
|
28 | 28 | <li class="current">changeset</li> |
|
29 | 29 | <li><a href="{url|urlescape}raw-rev/{symrev}">raw</a></li> |
|
30 | 30 | {archives%archiveentry} |
|
31 | 31 | </ul> |
|
32 | 32 | |
|
33 | 33 | <h2 class="no-link no-border">changeset</h2> |
|
34 | 34 | |
|
35 | 35 | <h3 class="changeset"> |
|
36 | 36 | <a href="{url|urlescape}raw-rev/{node|short}"> |
|
37 | 37 | {desc|strip|escape|firstline|nonempty} |
|
38 | 38 | {alltags} |
|
39 | 39 | </a> |
|
40 | 40 | </h3> |
|
41 | 41 | <p class="changeset-age"><span class="age">{date|rfc822date}</span></p> |
|
42 | 42 | |
|
43 | 43 | <dl class="overview"> |
|
44 | 44 | <dt>author</dt> |
|
45 | 45 | <dd>{author|obfuscate}</dd> |
|
46 | 46 | <dt>date</dt> |
|
47 | 47 | <dd class="date age">{date|rfc822date}</dd> |
|
48 | 48 | {branch%changesetbranch} |
|
49 | 49 | <dt>changeset {rev}</dt> |
|
50 | 50 | <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd> |
|
51 |
{if(obsolete, |
|
|
51 | {if(obsolete, succsandmarkers%obsfateentry)} | |
|
52 | 52 | {ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)} |
|
53 | 53 | {child%changesetchild} |
|
54 | 54 | </dl> |
|
55 | 55 | |
|
56 | 56 | <p class="description">{desc|strip|escape|websub|addbreaks|nonempty}</p> |
|
57 | 57 | |
|
58 | 58 | <table> |
|
59 | 59 | {files} |
|
60 | 60 | </table> |
|
61 | 61 | |
|
62 | 62 | <div class="diff diffblocks"> |
|
63 | 63 | {diff} |
|
64 | 64 | </div> |
|
65 | 65 | |
|
66 | 66 | {footer} |
@@ -1,302 +1,304 | |||
|
1 | 1 | default = 'summary' |
|
2 | 2 | mimetype = 'text/html; charset={encoding}' |
|
3 | 3 | header = header.tmpl |
|
4 | 4 | footer = footer.tmpl |
|
5 | 5 | search = search.tmpl |
|
6 | 6 | changelog = changelog.tmpl |
|
7 | 7 | summary = summary.tmpl |
|
8 | 8 | error = error.tmpl |
|
9 | 9 | notfound = notfound.tmpl |
|
10 | 10 | |
|
11 | 11 | help = help.tmpl |
|
12 | 12 | helptopics = helptopics.tmpl |
|
13 | 13 | |
|
14 | 14 | helpentry = ' |
|
15 | 15 | <tr><td> |
|
16 | 16 | <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}"> |
|
17 | 17 | {if(basename, '{basename|escape}', '{topic|escape}')} |
|
18 | 18 | </a> |
|
19 | 19 | </td><td> |
|
20 | 20 | {summary|escape} |
|
21 | 21 | </td></tr>' |
|
22 | 22 | |
|
23 | 23 | naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
24 | 24 | navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
25 | 25 | navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
26 | 26 | filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
27 | 27 | filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' |
|
28 | 28 | filenodelink = ' |
|
29 | 29 | <tr class="parity{parity}"> |
|
30 | 30 | <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> |
|
31 | 31 | <td></td> |
|
32 | 32 | <td> |
|
33 | 33 | <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | |
|
34 | 34 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | |
|
35 | 35 | <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | |
|
36 | 36 | <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> | |
|
37 | 37 | <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
|
38 | 38 | </td> |
|
39 | 39 | </tr>' |
|
40 | 40 | filenolink = ' |
|
41 | 41 | <tr class="parity{parity}"> |
|
42 | 42 | <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> |
|
43 | 43 | <td></td> |
|
44 | 44 | <td> |
|
45 | 45 | file | |
|
46 | 46 | annotate | |
|
47 | 47 | <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | |
|
48 | 48 | <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> | |
|
49 | 49 | <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
|
50 | 50 | </td> |
|
51 | 51 | </tr>' |
|
52 | 52 | |
|
53 | 53 | nav = '{before%naventry} {after%naventry}' |
|
54 | 54 | navshort = '{before%navshortentry}{after%navshortentry}' |
|
55 | 55 | navgraph = '{before%navgraphentry}{after%navgraphentry}' |
|
56 | 56 | filenav = '{before%filenaventry}{after%filenaventry}' |
|
57 | 57 | |
|
58 | 58 | fileellipses = '...' |
|
59 | 59 | changelogentry = changelogentry.tmpl |
|
60 | 60 | searchentry = changelogentry.tmpl |
|
61 | 61 | changeset = changeset.tmpl |
|
62 | 62 | manifest = manifest.tmpl |
|
63 | 63 | direntry = ' |
|
64 | 64 | <tr class="parity{parity}"> |
|
65 | 65 | <td>drwxr-xr-x</td> |
|
66 | 66 | <td></td> |
|
67 | 67 | <td></td> |
|
68 | 68 | <td> |
|
69 | 69 | <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a> |
|
70 | 70 | <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a> |
|
71 | 71 | </td> |
|
72 | 72 | <td><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></td> |
|
73 | 73 | </tr>' |
|
74 | 74 | fileentry = ' |
|
75 | 75 | <tr class="parity{parity}"> |
|
76 | 76 | <td>{permissions|permissions}</td> |
|
77 | 77 | <td>{date|isodate}</td> |
|
78 | 78 | <td>{size}</td> |
|
79 | 79 | <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td> |
|
80 | 80 | <td> |
|
81 | 81 | <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> | |
|
82 | 82 | <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | |
|
83 | 83 | <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
|
84 | 84 | </td> |
|
85 | 85 | </tr>' |
|
86 | 86 | filerevision = filerevision.tmpl |
|
87 | 87 | fileannotate = fileannotate.tmpl |
|
88 | 88 | filediff = filediff.tmpl |
|
89 | 89 | filecomparison = filecomparison.tmpl |
|
90 | 90 | filelog = filelog.tmpl |
|
91 | 91 | fileline = ' |
|
92 | 92 | <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>' |
|
93 | 93 | annotateline = ' |
|
94 | 94 | <tr id="{lineid}" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}"> |
|
95 | 95 | <td class="annotate linenr parity{blockparity}"> |
|
96 | 96 | {if(blockhead, |
|
97 | 97 | '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"> |
|
98 | 98 | {rev} |
|
99 | 99 | </a>')} |
|
100 | 100 | <div class="annotate-info"> |
|
101 | 101 | <div> |
|
102 | 102 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"> |
|
103 | 103 | {node|short}</a> |
|
104 | 104 | {desc|escape|firstline} |
|
105 | 105 | </div> |
|
106 | 106 | <div><em>{author|obfuscate}</em></div> |
|
107 | 107 | <div>parents: {parents%annotateparent}</div> |
|
108 | 108 | <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
|
109 | 109 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
|
110 | 110 | </div> |
|
111 | 111 | </td> |
|
112 | 112 | <td class="lineno"> |
|
113 | 113 | <a href="#{lineid}">{linenumber}</a> |
|
114 | 114 | </td> |
|
115 | 115 | <td class="source">{line|escape}</td> |
|
116 | 116 | </tr>' |
|
117 | 117 | annotateparent = ' |
|
118 | 118 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>' |
|
119 | 119 | difflineplus = ' |
|
120 | 120 | <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>' |
|
121 | 121 | difflineminus = ' |
|
122 | 122 | <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>' |
|
123 | 123 | difflineat = ' |
|
124 | 124 | <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>' |
|
125 | 125 | diffline = ' |
|
126 | 126 | <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>' |
|
127 | 127 | |
|
128 | 128 | comparisonblock =' |
|
129 | 129 | <tbody class="block"> |
|
130 | 130 | {lines} |
|
131 | 131 | </tbody>' |
|
132 | 132 | comparisonline = ' |
|
133 | 133 | <tr id="{lineid}"> |
|
134 | 134 | <td class="source {type}"><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td> |
|
135 | 135 | <td class="source {type}"><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td> |
|
136 | 136 | </tr>' |
|
137 | 137 | |
|
138 | 138 | changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' |
|
139 | 139 | changesetbranch = '<dt>branch</dt><dd>{name|escape}</dd>' |
|
140 | 140 | changesetparent = ' |
|
141 | 141 | <dt>parent {rev}</dt> |
|
142 | 142 | <dd>{changesetlink}</dd>' |
|
143 | 143 | changesetparentdiff = ' |
|
144 | 144 | <dt>parent {rev}</dt> |
|
145 | 145 | <dd>{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</dd>' |
|
146 | 146 | difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>' |
|
147 | 147 | filerevbranch = '<dt>branch</dt><dd>{name|escape}</dd>' |
|
148 | 148 | filerevparent = ' |
|
149 | 149 | <dt>parent {rev}</dt> |
|
150 | 150 | <dd> |
|
151 | 151 | <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> |
|
152 | 152 | {rename%filerename}{node|short} |
|
153 | 153 | </a> |
|
154 | 154 | </dd>' |
|
155 | 155 | filerename = '{file|escape}@' |
|
156 | 156 | filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>' |
|
157 | 157 | fileannotateparent = ' |
|
158 | 158 | <dt>parent {rev}</dt> |
|
159 | 159 | <dd> |
|
160 | 160 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> |
|
161 | 161 | {rename%filerename}{node|short} |
|
162 | 162 | </a> |
|
163 | 163 | </dd>' |
|
164 | 164 | changesetchild = ' |
|
165 | 165 | <dt>child {rev}</dt> |
|
166 | 166 | <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>' |
|
167 | 167 | filerevchild = ' |
|
168 | 168 | <dt>child {rev}</dt> |
|
169 | 169 | <dd> |
|
170 | 170 | <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> |
|
171 | 171 | </dd>' |
|
172 | 172 | fileannotatechild = ' |
|
173 | 173 | <dt>child {rev}</dt> |
|
174 | 174 | <dd> |
|
175 | 175 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> |
|
176 | 176 | </dd>' |
|
177 | 177 | tags = tags.tmpl |
|
178 | 178 | tagentry = ' |
|
179 | 179 | <tr class="parity{parity}"> |
|
180 | 180 | <td class="nowrap age">{date|rfc822date}</td> |
|
181 | 181 | <td><a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">{tag|escape}</a></td> |
|
182 | 182 | <td class="nowrap"> |
|
183 | 183 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | |
|
184 | 184 | <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> | |
|
185 | 185 | <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a> |
|
186 | 186 | </td> |
|
187 | 187 | </tr>' |
|
188 | 188 | bookmarks = bookmarks.tmpl |
|
189 | 189 | bookmarkentry = ' |
|
190 | 190 | <tr class="parity{parity}"> |
|
191 | 191 | <td class="nowrap age">{date|rfc822date}</td> |
|
192 | 192 | <td><a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">{bookmark|escape}</a></td> |
|
193 | 193 | <td class="nowrap"> |
|
194 | 194 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | |
|
195 | 195 | <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> | |
|
196 | 196 | <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a> |
|
197 | 197 | </td> |
|
198 | 198 | </tr>' |
|
199 | 199 | branches = branches.tmpl |
|
200 | 200 | branchentry = ' |
|
201 | 201 | <tr class="parity{parity}"> |
|
202 | 202 | <td class="nowrap age">{date|rfc822date}</td> |
|
203 | 203 | <td class="{status}"><a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}">{branch|escape}</a></td> |
|
204 | 204 | <td class="nowrap"> |
|
205 | 205 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | |
|
206 | 206 | <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> | |
|
207 | 207 | <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a> |
|
208 | 208 | </td> |
|
209 | 209 | </tr>' |
|
210 | 210 | diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>' |
|
211 | 211 | filediffparent = ' |
|
212 | 212 | <dt>parent {rev}</dt> |
|
213 | 213 | <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>' |
|
214 | 214 | filecompparent = ' |
|
215 | 215 | <dt>parent {rev}</dt> |
|
216 | 216 | <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>' |
|
217 | 217 | filediffchild = ' |
|
218 | 218 | <dt>child {rev}</dt> |
|
219 | 219 | <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>' |
|
220 | 220 | filecompchild = ' |
|
221 | 221 | <dt>child {rev}</dt> |
|
222 | 222 | <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>' |
|
223 | 223 | shortlog = shortlog.tmpl |
|
224 | 224 | phasetag = '{ifeq(phase, 'public', '', '<span class="phasetag" title="{phase|escape}">{phase|escape}</span> ')}' |
|
225 | 225 | obsoletetag = '{if(obsolete, '<span class="obsoletetag" title="obsolete">obsolete</span> ')}' |
|
226 | 226 | instabilitytag = '<span class="instabilitytag" title="{instability|escape}">{instability|escape}</span> ' |
|
227 | 227 | tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> ' |
|
228 | 228 | branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> ' |
|
229 | 229 | inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> ' |
|
230 | 230 | bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> ' |
|
231 | 231 | alltags = '<span class="logtags">{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>' |
|
232 | 232 | successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' |
|
233 | 233 | obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}' |
|
234 | 234 | obsfateverb = '{obsfateverb(successors, markers)}' |
|
235 | 235 | obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}' |
|
236 | 236 | obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}' |
|
237 | 237 | obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}' |
|
238 | obsfateentry = '{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}' | |
|
238 | obsfateentry = ' | |
|
239 | <dt>obsolete</dt> | |
|
240 | <dd>{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}</dd>' | |
|
239 | 241 | shortlogentry = ' |
|
240 | 242 | <tr class="parity{parity}"> |
|
241 | 243 | <td class="nowrap age">{date|rfc822date}</td> |
|
242 | 244 | <td>{author|person}</td> |
|
243 | 245 | <td> |
|
244 | 246 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}"> |
|
245 | 247 | {desc|strip|firstline|escape|nonempty} |
|
246 | 248 | {alltags} |
|
247 | 249 | </a> |
|
248 | 250 | </td> |
|
249 | 251 | <td class="nowrap"> |
|
250 | 252 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | |
|
251 | 253 | <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a> |
|
252 | 254 | </td> |
|
253 | 255 | </tr>' |
|
254 | 256 | filelogentry = ' |
|
255 | 257 | <tr class="parity{parity}"> |
|
256 | 258 | <td class="nowrap age">{date|rfc822date}</td> |
|
257 | 259 | <td>{author|person}</td> |
|
258 | 260 | <td> |
|
259 | 261 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}"> |
|
260 | 262 | {desc|strip|firstline|escape|nonempty} |
|
261 | 263 | {alltags} |
|
262 | 264 | </a> |
|
263 | 265 | </td> |
|
264 | 266 | <td class="nowrap"> |
|
265 | 267 | <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | |
|
266 | 268 | <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | |
|
267 | 269 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
|
268 | 270 | {rename%filelogrename} |
|
269 | 271 | </td> |
|
270 | 272 | </tr>' |
|
271 | 273 | archiveentry = '<li><a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a></li>' |
|
272 | 274 | indexentry = ' |
|
273 | 275 | <tr class="parity{parity}"> |
|
274 | 276 | <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td> |
|
275 | 277 | <td>{description}</td> |
|
276 | 278 | <td>{contact|obfuscate}</td> |
|
277 | 279 | <td class="age">{lastchange|rfc822date}</td> |
|
278 | 280 | <td class="indexlinks">{archives%indexarchiveentry}</td> |
|
279 | 281 | <td> |
|
280 | 282 | {if(isdirectory, '', |
|
281 | 283 | '<div class="rss_logo"> |
|
282 | 284 | <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a> |
|
283 | 285 | </div>' |
|
284 | 286 | )} |
|
285 | 287 | </td> |
|
286 | 288 | </tr>\n' |
|
287 | 289 | indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> ' |
|
288 | 290 | index = index.tmpl |
|
289 | 291 | urlparameter = '{separator}{name}={value|urlescape}' |
|
290 | 292 | hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />' |
|
291 | 293 | graph = graph.tmpl |
|
292 | 294 | graphentry = graphentry.tmpl |
|
293 | 295 | breadcrumb = '> <a href="{url|urlescape}">{name|escape}</a> ' |
|
294 | 296 | |
|
295 | 297 | searchform = ' |
|
296 | 298 | <form action="{url|urlescape}log"> |
|
297 | 299 | {sessionvars%hiddenformentry} |
|
298 | 300 | <dl class="search"> |
|
299 | 301 | <dt><label>Search: </label></dt> |
|
300 | 302 | <dd><input type="text" name="rev" value="{query|escape}" /></dd> |
|
301 | 303 | </dl> |
|
302 | 304 | </form>' |
@@ -1,91 +1,91 | |||
|
1 | 1 | {header} |
|
2 | 2 | <title>{repo|escape}: {node|short}</title> |
|
3 | 3 | </head> |
|
4 | 4 | <body> |
|
5 | 5 | <div class="container"> |
|
6 | 6 | <div class="menu"> |
|
7 | 7 | <div class="logo"> |
|
8 | 8 | <a href="{logourl}"> |
|
9 | 9 | <img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a> |
|
10 | 10 | </div> |
|
11 | 11 | <ul> |
|
12 | 12 | <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> |
|
13 | 13 | <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> |
|
14 | 14 | <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> |
|
15 | 15 | <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> |
|
16 | 16 | <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> |
|
17 | 17 | </ul> |
|
18 | 18 | <ul> |
|
19 | 19 | <li class="active">changeset</li> |
|
20 | 20 | <li><a href="{url|urlescape}raw-rev/{symrev}{sessionvars%urlparameter}">raw</a></li> |
|
21 | 21 | <li><a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">browse</a></li> |
|
22 | 22 | </ul> |
|
23 | 23 | <ul> |
|
24 | 24 | {archives%archiveentry} |
|
25 | 25 | </ul> |
|
26 | 26 | <ul> |
|
27 | 27 | <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> |
|
28 | 28 | </ul> |
|
29 | 29 | </div> |
|
30 | 30 | |
|
31 | 31 | <div class="main"> |
|
32 | 32 | |
|
33 | 33 | <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2> |
|
34 | 34 | <h3> |
|
35 | 35 | changeset {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> |
|
36 | 36 | {alltags} |
|
37 | 37 | </h3> |
|
38 | 38 | |
|
39 | 39 | {searchform} |
|
40 | 40 | |
|
41 | 41 | <div class="description">{desc|strip|escape|websub|nonempty}</div> |
|
42 | 42 | |
|
43 | 43 | <table id="changesetEntry"> |
|
44 | 44 | <tr> |
|
45 | 45 | <th class="author">author</th> |
|
46 | 46 | <td class="author">{author|obfuscate}</td> |
|
47 | 47 | </tr> |
|
48 | 48 | <tr> |
|
49 | 49 | <th class="date">date</th> |
|
50 | 50 | <td class="date age">{date|rfc822date}</td> |
|
51 | 51 | </tr> |
|
52 | 52 | {if(obsolete, '<tr> |
|
53 | 53 | <th>obsolete</th> |
|
54 | <td>{succsandmarkers%obsfateentry}</td> | |
|
54 | <td>{join(succsandmarkers%obsfateentry, '<br>\n')}</td> | |
|
55 | 55 | </tr>')} |
|
56 | 56 | <tr> |
|
57 | 57 | <th class="author">parents</th> |
|
58 | 58 | <td class="author">{ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)}</td> |
|
59 | 59 | </tr> |
|
60 | 60 | <tr> |
|
61 | 61 | <th class="author">children</th> |
|
62 | 62 | <td class="author">{child%changesetchild}</td> |
|
63 | 63 | </tr> |
|
64 | 64 | <tr> |
|
65 | 65 | <th class="files">files</th> |
|
66 | 66 | <td class="files">{files}</td> |
|
67 | 67 | </tr> |
|
68 | 68 | <tr> |
|
69 | 69 | <th class="diffstat">diffstat</th> |
|
70 | 70 | <td class="diffstat"> |
|
71 | 71 | {diffsummary} |
|
72 | 72 | <a id="diffstatexpand" href="javascript:toggleDiffstat()">[<tt>+</tt>]</a> |
|
73 | 73 | <div id="diffstatdetails" style="display:none;"> |
|
74 | 74 | <a href="javascript:toggleDiffstat()">[<tt>-</tt>]</a> |
|
75 | 75 | <table class="diffstat-table stripes2">{diffstat}</table> |
|
76 | 76 | </div> |
|
77 | 77 | </td> |
|
78 | 78 | </tr> |
|
79 | 79 | </table> |
|
80 | 80 | |
|
81 | 81 | <div class="overflow"> |
|
82 | 82 | <div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="javascript:toggleLinewrap()">on</a></div> |
|
83 | 83 | <div class="sourcefirst"> line diff</div> |
|
84 | 84 | <div class="stripes2 diffblocks"> |
|
85 | 85 | {diff} |
|
86 | 86 | </div> |
|
87 | 87 | </div> |
|
88 | 88 | |
|
89 | 89 | </div> |
|
90 | 90 | </div> |
|
91 | 91 | {footer} |
@@ -1,37 +1,34 | |||
|
1 | 1 | <table class="logEntry parity{parity}"> |
|
2 | 2 | <tr> |
|
3 | 3 | <th class="label"><span class="age">{date|rfc822date}</span>:</th> |
|
4 | 4 | <th class="firstline">{desc|strip|firstline|escape|nonempty}</th> |
|
5 | 5 | </tr> |
|
6 | 6 | <tr> |
|
7 | 7 | <th class="revision">changeset {rev}:</th> |
|
8 | 8 | <td class="node"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> |
|
9 | 9 | </tr> |
|
10 | 10 | {parent%changelogparent} |
|
11 | 11 | {child%changelogchild} |
|
12 | 12 | {changelogtag} |
|
13 | 13 | <tr> |
|
14 | 14 | <th class="author">author:</th> |
|
15 | 15 | <td class="author">{author|obfuscate}</td> |
|
16 | 16 | </tr> |
|
17 | 17 | <tr> |
|
18 | 18 | <th class="date">date:</th> |
|
19 | 19 | <td class="date">{date|rfc822date}</td> |
|
20 | 20 | </tr> |
|
21 | 21 | {ifeq(phase, 'public', '', '<tr> |
|
22 | 22 | <th class="phase">phase:</th> |
|
23 | 23 | <td class="phase">{phase|escape}</td> |
|
24 | 24 | </tr>')} |
|
25 | {if(obsolete, '<tr> | |
|
26 | <th class="obsolete">obsolete:</th> | |
|
27 | <td class="obsolete">{succsandmarkers%obsfateentry}</td> | |
|
28 | </tr>')} | |
|
25 | {if(obsolete, succsandmarkers%obsfateentry)} | |
|
29 | 26 | {ifeq(count(instabilities), '0', '', '<tr> |
|
30 | 27 | <th class="instabilities">instabilities:</th> |
|
31 | 28 | <td class="instabilities">{instabilities%"{instability} "|escape}</td> |
|
32 | 29 | </tr>')} |
|
33 | 30 | <tr> |
|
34 | 31 | <th class="files"><a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>:</th> |
|
35 | 32 | <td class="files">{files}</td> |
|
36 | 33 | </tr> |
|
37 | 34 | </table> |
@@ -1,64 +1,61 | |||
|
1 | 1 | {header} |
|
2 | 2 | <title>{repo|escape}: changeset {node|short}</title> |
|
3 | 3 | </head> |
|
4 | 4 | <body> |
|
5 | 5 | |
|
6 | 6 | <div class="buttons"> |
|
7 | 7 | <a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a> |
|
8 | 8 | <a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a> |
|
9 | 9 | <a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a> |
|
10 | 10 | <a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
|
11 | 11 | <a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
|
12 | 12 | <a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a> |
|
13 | 13 | <a href="{url|urlescape}raw-rev/{symrev}">raw</a> |
|
14 | 14 | {archives%archiveentry} |
|
15 | 15 | <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a> |
|
16 | 16 | </div> |
|
17 | 17 | |
|
18 | 18 | <h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / changeset: {desc|strip|escape|firstline|nonempty}</h2> |
|
19 | 19 | |
|
20 | 20 | <table id="changesetEntry"> |
|
21 | 21 | <tr> |
|
22 | 22 | <th class="changeset">changeset {rev}:</th> |
|
23 | 23 | <td class="changeset"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> |
|
24 | 24 | </tr> |
|
25 | 25 | {ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)} |
|
26 | 26 | {child%changesetchild} |
|
27 | 27 | {changesettag} |
|
28 | 28 | <tr> |
|
29 | 29 | <th class="author">author:</th> |
|
30 | 30 | <td class="author">{author|obfuscate}</td> |
|
31 | 31 | </tr> |
|
32 | 32 | <tr> |
|
33 | 33 | <th class="date">date:</th> |
|
34 | 34 | <td class="date age">{date|rfc822date}</td> |
|
35 | 35 | </tr> |
|
36 | 36 | {ifeq(phase, 'public', '', '<tr> |
|
37 | 37 | <th class="phase">phase:</th> |
|
38 | 38 | <td class="phase">{phase|escape}</td> |
|
39 | 39 | </tr>')} |
|
40 | {if(obsolete, '<tr> | |
|
41 | <th class="obsolete">obsolete:</th> | |
|
42 | <td class="obsolete">{succsandmarkers%obsfateentry}</td> | |
|
43 | </tr>')} | |
|
40 | {if(obsolete, succsandmarkers%obsfateentry)} | |
|
44 | 41 | {ifeq(count(instabilities), '0', '', '<tr> |
|
45 | 42 | <th class="instabilities">instabilities:</th> |
|
46 | 43 | <td class="instabilities">{instabilities%"{instability} "|escape}</td> |
|
47 | 44 | </tr>')} |
|
48 | 45 | <tr> |
|
49 | 46 | <th class="files">files:</th> |
|
50 | 47 | <td class="files">{files}</td> |
|
51 | 48 | </tr> |
|
52 | 49 | <tr> |
|
53 | 50 | <th class="description">description:</th> |
|
54 | 51 | <td class="description">{desc|strip|escape|websub|addbreaks|nonempty}</td> |
|
55 | 52 | </tr> |
|
56 | 53 | </table> |
|
57 | 54 | |
|
58 | 55 | <div id="changesetDiff"> |
|
59 | 56 | {diff} |
|
60 | 57 | </div> |
|
61 | 58 | |
|
62 | 59 | {footer} |
|
63 | 60 | |
|
64 | 61 |
@@ -1,204 +1,208 | |||
|
1 | 1 | default = 'shortlog' |
|
2 | 2 | mimetype = 'text/html; charset={encoding}' |
|
3 | 3 | header = header.tmpl |
|
4 | 4 | footer = footer.tmpl |
|
5 | 5 | search = search.tmpl |
|
6 | 6 | changelog = changelog.tmpl |
|
7 | 7 | shortlog = shortlog.tmpl |
|
8 | 8 | shortlogentry = shortlogentry.tmpl |
|
9 | 9 | graph = graph.tmpl |
|
10 | 10 | graphentry = graphentry.tmpl |
|
11 | 11 | naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
12 | 12 | navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
13 | 13 | navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
14 | 14 | filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' |
|
15 | 15 | filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' |
|
16 | 16 | filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' |
|
17 | 17 | filenolink = '{file|escape} ' |
|
18 | 18 | fileellipses = '...' |
|
19 | 19 | changelogentry = changelogentry.tmpl |
|
20 | 20 | searchentry = changelogentry.tmpl |
|
21 | 21 | changeset = changeset.tmpl |
|
22 | 22 | manifest = manifest.tmpl |
|
23 | 23 | |
|
24 | 24 | nav = '{before%naventry} {after%naventry}' |
|
25 | 25 | navshort = '{before%navshortentry}{after%navshortentry}' |
|
26 | 26 | navgraph = '{before%navgraphentry}{after%navgraphentry}' |
|
27 | 27 | filenav = '{before%filenaventry}{after%filenaventry}' |
|
28 | 28 | |
|
29 | 29 | direntry = ' |
|
30 | 30 | <tr class="parity{parity}"> |
|
31 | 31 | <td><tt>drwxr-xr-x</tt> |
|
32 | 32 | <td> |
|
33 | 33 | <td> |
|
34 | 34 | <td> |
|
35 | 35 | <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a> |
|
36 | 36 | <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}"> |
|
37 | 37 | {emptydirs|urlescape} |
|
38 | 38 | </a>' |
|
39 | 39 | |
|
40 | 40 | fileentry = ' |
|
41 | 41 | <tr class="parity{parity}"> |
|
42 | 42 | <td><tt>{permissions|permissions}</tt> |
|
43 | 43 | <td align=right><tt class="date">{date|isodate}</tt> |
|
44 | 44 | <td align=right><tt>{size}</tt> |
|
45 | 45 | <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>' |
|
46 | 46 | |
|
47 | 47 | filerevision = filerevision.tmpl |
|
48 | 48 | fileannotate = fileannotate.tmpl |
|
49 | 49 | filediff = filediff.tmpl |
|
50 | 50 | filelog = filelog.tmpl |
|
51 | 51 | fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>' |
|
52 | 52 | filelogentry = filelogentry.tmpl |
|
53 | 53 | |
|
54 | 54 | # The ensures that all table cells have content (even if there |
|
55 | 55 | # is an empty line in the annotated file), which in turn ensures that |
|
56 | 56 | # all table rows have equal height. |
|
57 | 57 | annotateline = ' |
|
58 | 58 | <tr class="parity{parity}{ifeq(node, originalnode, ' thisrev')}"> |
|
59 | 59 | <td class="annotate parity{blockparity}"> |
|
60 | 60 | {if(blockhead, |
|
61 | 61 | '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"> |
|
62 | 62 | {rev} |
|
63 | 63 | </a>')} |
|
64 | 64 | <div class="annotate-info"> |
|
65 | 65 | <div> |
|
66 | 66 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"> |
|
67 | 67 | {node|short}</a> |
|
68 | 68 | {desc|escape|firstline} |
|
69 | 69 | </div> |
|
70 | 70 | <div><em>{author|obfuscate}</em></div> |
|
71 | 71 | <div>parents: {parents%annotateparent}</div> |
|
72 | 72 | <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
|
73 | 73 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
|
74 | 74 | </div> |
|
75 | 75 | </td> |
|
76 | 76 | <td> |
|
77 | 77 | <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a> |
|
78 | 78 | </td> |
|
79 | 79 | <td><pre> {line|escape}</pre></td> |
|
80 | 80 | </tr>' |
|
81 | 81 | annotateparent = ' |
|
82 | 82 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>' |
|
83 | 83 | difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>' |
|
84 | 84 | difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>' |
|
85 | 85 | difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>' |
|
86 | 86 | diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}' |
|
87 | 87 | changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' |
|
88 | 88 | changelogparent = ' |
|
89 | 89 | <tr> |
|
90 | 90 | <th class="parent">parent {rev}:</th> |
|
91 | 91 | <td class="parent"> |
|
92 | 92 | {changesetlink} |
|
93 | 93 | </td> |
|
94 | 94 | </tr>' |
|
95 | 95 | changesetparent = ' |
|
96 | 96 | <tr> |
|
97 | 97 | <th class="parent">parent {rev}:</th> |
|
98 | 98 | <td class="parent">{changesetlink}</td> |
|
99 | 99 | </tr>' |
|
100 | 100 | changesetparentdiff = ' |
|
101 | 101 | <tr> |
|
102 | 102 | <th class="parent">parent {rev}:</th> |
|
103 | 103 | <td class="parent">{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</td> |
|
104 | 104 | </tr>' |
|
105 | 105 | difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>' |
|
106 | 106 | filerevparent = ' |
|
107 | 107 | <tr> |
|
108 | 108 | <td class="metatag">parent:</td> |
|
109 | 109 | <td> |
|
110 | 110 | <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> |
|
111 | 111 | {rename%filerename}{node|short} |
|
112 | 112 | </a> |
|
113 | 113 | </td> |
|
114 | 114 | </tr>' |
|
115 | 115 | filerename = '{file|escape}@' |
|
116 | 116 | filelogrename = ' |
|
117 | 117 | <tr> |
|
118 | 118 | <th>base:</th> |
|
119 | 119 | <td> |
|
120 | 120 | <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> |
|
121 | 121 | {file|escape}@{node|short} |
|
122 | 122 | </a> |
|
123 | 123 | </td> |
|
124 | 124 | </tr>' |
|
125 | 125 | fileannotateparent = ' |
|
126 | 126 | <tr> |
|
127 | 127 | <td class="metatag">parent:</td> |
|
128 | 128 | <td> |
|
129 | 129 | <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> |
|
130 | 130 | {rename%filerename}{node|short} |
|
131 | 131 | </a> |
|
132 | 132 | </td> |
|
133 | 133 | </tr>' |
|
134 | 134 | changesetchild = ' |
|
135 | 135 | <tr> |
|
136 | 136 | <th class="child">child {rev}:</th> |
|
137 | 137 | <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> |
|
138 | 138 | </tr>' |
|
139 | 139 | changelogchild = ' |
|
140 | 140 | <tr> |
|
141 | 141 | <th class="child">child {rev}:</th> |
|
142 | 142 | <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> |
|
143 | 143 | </tr>' |
|
144 | 144 | filerevchild = ' |
|
145 | 145 | <tr> |
|
146 | 146 | <td class="metatag">child:</td> |
|
147 | 147 | <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> |
|
148 | 148 | </tr>' |
|
149 | 149 | fileannotatechild = ' |
|
150 | 150 | <tr> |
|
151 | 151 | <td class="metatag">child:</td> |
|
152 | 152 | <td><a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> |
|
153 | 153 | </tr>' |
|
154 | 154 | tags = tags.tmpl |
|
155 | 155 | tagentry = ' |
|
156 | 156 | <li class="tagEntry parity{parity}"> |
|
157 | 157 | <tt class="node">{node}</tt> |
|
158 | 158 | <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a> |
|
159 | 159 | </li>' |
|
160 | 160 | branches = branches.tmpl |
|
161 | 161 | branchentry = ' |
|
162 | 162 | <li class="tagEntry parity{parity}"> |
|
163 | 163 | <tt class="node">{node}</tt> |
|
164 | 164 | <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a> |
|
165 | 165 | </li>' |
|
166 | 166 | diffblock = '<pre class="parity{parity}">{lines}</pre>' |
|
167 | 167 | changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>' |
|
168 | 168 | changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>' |
|
169 | 169 | successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' |
|
170 | 170 | obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}' |
|
171 | 171 | obsfateverb = '{obsfateverb(successors, markers)}' |
|
172 | 172 | obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}' |
|
173 | 173 | obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}' |
|
174 | 174 | obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}' |
|
175 | obsfateentry = '{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}' | |
|
175 | obsfateentry = ' | |
|
176 | <tr> | |
|
177 | <th class="obsolete">obsolete:</th> | |
|
178 | <td class="obsolete">{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}</td> | |
|
179 | </tr>' | |
|
176 | 180 | filediffparent = ' |
|
177 | 181 | <tr> |
|
178 | 182 | <th class="parent">parent {rev}:</th> |
|
179 | 183 | <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> |
|
180 | 184 | </tr>' |
|
181 | 185 | filediffchild = ' |
|
182 | 186 | <tr> |
|
183 | 187 | <th class="child">child {rev}:</th> |
|
184 | 188 | <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> |
|
185 | 189 | </tr>' |
|
186 | 190 | indexentry = ' |
|
187 | 191 | <tr class="parity{parity}"> |
|
188 | 192 | <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td> |
|
189 | 193 | <td>{description}</td> |
|
190 | 194 | <td>{contact|obfuscate}</td> |
|
191 | 195 | <td class="age">{lastchange|rfc822date}</td> |
|
192 | 196 | <td class="indexlinks"> |
|
193 | 197 | <a href="{url|urlescape}rss-log">RSS</a> |
|
194 | 198 | <a href="{url|urlescape}atom-log">Atom</a> |
|
195 | 199 | {archives%archiveentry} |
|
196 | 200 | </td> |
|
197 | 201 | </tr>' |
|
198 | 202 | index = index.tmpl |
|
199 | 203 | archiveentry = '<a href="{url|urlescape}archive/{symrev}{extension|urlescape}">{type|escape}</a> ' |
|
200 | 204 | notfound = notfound.tmpl |
|
201 | 205 | error = error.tmpl |
|
202 | 206 | urlparameter = '{separator}{name}={value|urlescape}' |
|
203 | 207 | hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />' |
|
204 | 208 | breadcrumb = '> <a href="{url|urlescape}">{name|escape}</a> ' |
@@ -1,714 +1,719 | |||
|
1 | 1 | Test file dedicated to testing the divergent troubles from obsolete changeset. |
|
2 | 2 | |
|
3 | 3 | This is the most complex troubles from far so we isolate it in a dedicated |
|
4 | 4 | file. |
|
5 | 5 | |
|
6 | 6 | Enable obsolete |
|
7 | 7 | |
|
8 | 8 | $ cat >> $HGRCPATH << EOF |
|
9 | 9 | > [ui] |
|
10 | 10 | > logtemplate = {rev}:{node|short} {desc}{if(obsfate, " [{join(obsfate, "; ")}]")}\n |
|
11 | 11 | > [experimental] |
|
12 | 12 | > evolution.createmarkers=True |
|
13 | 13 | > [extensions] |
|
14 | 14 | > drawdag=$TESTDIR/drawdag.py |
|
15 | 15 | > [alias] |
|
16 | 16 | > debugobsolete = debugobsolete -d '0 0' |
|
17 | 17 | > [phases] |
|
18 | 18 | > publish=False |
|
19 | 19 | > EOF |
|
20 | 20 | |
|
21 | 21 | |
|
22 | 22 | $ mkcommit() { |
|
23 | 23 | > echo "$1" > "$1" |
|
24 | 24 | > hg add "$1" |
|
25 | 25 | > hg ci -m "$1" |
|
26 | 26 | > } |
|
27 | 27 | $ getid() { |
|
28 | 28 | > hg log --hidden -r "desc('$1')" -T '{node}\n' |
|
29 | 29 | > } |
|
30 | 30 | |
|
31 | 31 | setup repo |
|
32 | 32 | |
|
33 | 33 | $ hg init reference |
|
34 | 34 | $ cd reference |
|
35 | 35 | $ mkcommit base |
|
36 | 36 | $ mkcommit A_0 |
|
37 | 37 | $ hg up 0 |
|
38 | 38 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
39 | 39 | $ mkcommit A_1 |
|
40 | 40 | created new head |
|
41 | 41 | $ hg up 0 |
|
42 | 42 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
43 | 43 | $ mkcommit A_2 |
|
44 | 44 | created new head |
|
45 | 45 | $ hg up 0 |
|
46 | 46 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
47 | 47 | $ cd .. |
|
48 | 48 | |
|
49 | 49 | |
|
50 | 50 | $ newcase() { |
|
51 | 51 | > hg clone -u 0 -q reference $1 |
|
52 | 52 | > cd $1 |
|
53 | 53 | > } |
|
54 | 54 | |
|
55 | 55 | direct divergence |
|
56 | 56 | ----------------- |
|
57 | 57 | |
|
58 | 58 | A_1 have two direct and divergent successors A_1 and A_1 |
|
59 | 59 | |
|
60 | 60 | $ newcase direct |
|
61 | 61 | $ hg debugobsolete `getid A_0` `getid A_1` |
|
62 | 62 | obsoleted 1 changesets |
|
63 | 63 | $ hg debugobsolete `getid A_0` `getid A_2` |
|
64 | 64 | 2 new content-divergent changesets |
|
65 | 65 | $ hg log -G --hidden |
|
66 | 66 | * 3:392fd25390da A_2 |
|
67 | 67 | | |
|
68 | 68 | | * 2:82623d38b9ba A_1 |
|
69 | 69 | |/ |
|
70 | 70 | | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da] |
|
71 | 71 | |/ |
|
72 | 72 | @ 0:d20a80d4def3 base |
|
73 | 73 | |
|
74 | 74 | $ hg debugsuccessorssets --hidden 'all()' |
|
75 | 75 | d20a80d4def3 |
|
76 | 76 | d20a80d4def3 |
|
77 | 77 | 007dc284c1f8 |
|
78 | 78 | 82623d38b9ba |
|
79 | 79 | 392fd25390da |
|
80 | 80 | 82623d38b9ba |
|
81 | 81 | 82623d38b9ba |
|
82 | 82 | 392fd25390da |
|
83 | 83 | 392fd25390da |
|
84 | 84 | $ hg log -r 'contentdivergent()' |
|
85 | 85 | 2:82623d38b9ba A_1 |
|
86 | 86 | 3:392fd25390da A_2 |
|
87 | 87 | $ hg debugsuccessorssets 'all()' --closest |
|
88 | 88 | d20a80d4def3 |
|
89 | 89 | d20a80d4def3 |
|
90 | 90 | 82623d38b9ba |
|
91 | 91 | 82623d38b9ba |
|
92 | 92 | 392fd25390da |
|
93 | 93 | 392fd25390da |
|
94 | 94 | $ hg debugsuccessorssets 'all()' --closest --hidden |
|
95 | 95 | d20a80d4def3 |
|
96 | 96 | d20a80d4def3 |
|
97 | 97 | 007dc284c1f8 |
|
98 | 98 | 82623d38b9ba |
|
99 | 99 | 392fd25390da |
|
100 | 100 | 82623d38b9ba |
|
101 | 101 | 82623d38b9ba |
|
102 | 102 | 392fd25390da |
|
103 | 103 | 392fd25390da |
|
104 | 104 | |
|
105 | 105 | check that mercurial refuse to push |
|
106 | 106 | |
|
107 | 107 | $ hg init ../other |
|
108 | 108 | $ hg push ../other |
|
109 | 109 | pushing to ../other |
|
110 | 110 | searching for changes |
|
111 | 111 | abort: push includes content-divergent changeset: 392fd25390da! |
|
112 | 112 | [255] |
|
113 | 113 | |
|
114 | 114 | $ cd .. |
|
115 | 115 | |
|
116 | 116 | |
|
117 | 117 | indirect divergence with known changeset |
|
118 | 118 | ------------------------------------------- |
|
119 | 119 | |
|
120 | 120 | $ newcase indirect_known |
|
121 | 121 | $ hg debugobsolete `getid A_0` `getid A_1` |
|
122 | 122 | obsoleted 1 changesets |
|
123 | 123 | $ hg debugobsolete `getid A_0` `getid A_2` |
|
124 | 124 | 2 new content-divergent changesets |
|
125 | 125 | $ mkcommit A_3 |
|
126 | 126 | created new head |
|
127 | 127 | $ hg debugobsolete `getid A_2` `getid A_3` |
|
128 | 128 | obsoleted 1 changesets |
|
129 | 129 | $ hg log -G --hidden |
|
130 | 130 | @ 4:01f36c5a8fda A_3 |
|
131 | 131 | | |
|
132 | 132 | | x 3:392fd25390da A_2 [rewritten as 4:01f36c5a8fda] |
|
133 | 133 | |/ |
|
134 | 134 | | * 2:82623d38b9ba A_1 |
|
135 | 135 | |/ |
|
136 | 136 | | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da] |
|
137 | 137 | |/ |
|
138 | 138 | o 0:d20a80d4def3 base |
|
139 | 139 | |
|
140 | 140 | $ hg debugsuccessorssets --hidden 'all()' |
|
141 | 141 | d20a80d4def3 |
|
142 | 142 | d20a80d4def3 |
|
143 | 143 | 007dc284c1f8 |
|
144 | 144 | 82623d38b9ba |
|
145 | 145 | 01f36c5a8fda |
|
146 | 146 | 82623d38b9ba |
|
147 | 147 | 82623d38b9ba |
|
148 | 148 | 392fd25390da |
|
149 | 149 | 01f36c5a8fda |
|
150 | 150 | 01f36c5a8fda |
|
151 | 151 | 01f36c5a8fda |
|
152 | 152 | $ hg log -r 'contentdivergent()' |
|
153 | 153 | 2:82623d38b9ba A_1 |
|
154 | 154 | 4:01f36c5a8fda A_3 |
|
155 | 155 | $ hg debugsuccessorssets 'all()' --closest |
|
156 | 156 | d20a80d4def3 |
|
157 | 157 | d20a80d4def3 |
|
158 | 158 | 82623d38b9ba |
|
159 | 159 | 82623d38b9ba |
|
160 | 160 | 01f36c5a8fda |
|
161 | 161 | 01f36c5a8fda |
|
162 | 162 | $ hg debugsuccessorssets 'all()' --closest --hidden |
|
163 | 163 | d20a80d4def3 |
|
164 | 164 | d20a80d4def3 |
|
165 | 165 | 007dc284c1f8 |
|
166 | 166 | 82623d38b9ba |
|
167 | 167 | 392fd25390da |
|
168 | 168 | 82623d38b9ba |
|
169 | 169 | 82623d38b9ba |
|
170 | 170 | 392fd25390da |
|
171 | 171 | 392fd25390da |
|
172 | 172 | 01f36c5a8fda |
|
173 | 173 | 01f36c5a8fda |
|
174 | 174 | $ cd .. |
|
175 | 175 | |
|
176 | 176 | |
|
177 | 177 | indirect divergence with known changeset |
|
178 | 178 | ------------------------------------------- |
|
179 | 179 | |
|
180 | 180 | $ newcase indirect_unknown |
|
181 | 181 | $ hg debugobsolete `getid A_0` aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
182 | 182 | obsoleted 1 changesets |
|
183 | 183 | $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid A_1` |
|
184 | 184 | $ hg debugobsolete `getid A_0` `getid A_2` |
|
185 | 185 | 2 new content-divergent changesets |
|
186 | 186 | $ hg log -G --hidden |
|
187 | 187 | * 3:392fd25390da A_2 |
|
188 | 188 | | |
|
189 | 189 | | * 2:82623d38b9ba A_1 |
|
190 | 190 | |/ |
|
191 | 191 | | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da] |
|
192 | 192 | |/ |
|
193 | 193 | @ 0:d20a80d4def3 base |
|
194 | 194 | |
|
195 | 195 | $ hg debugsuccessorssets --hidden 'all()' |
|
196 | 196 | d20a80d4def3 |
|
197 | 197 | d20a80d4def3 |
|
198 | 198 | 007dc284c1f8 |
|
199 | 199 | 82623d38b9ba |
|
200 | 200 | 392fd25390da |
|
201 | 201 | 82623d38b9ba |
|
202 | 202 | 82623d38b9ba |
|
203 | 203 | 392fd25390da |
|
204 | 204 | 392fd25390da |
|
205 | 205 | $ hg log -r 'contentdivergent()' |
|
206 | 206 | 2:82623d38b9ba A_1 |
|
207 | 207 | 3:392fd25390da A_2 |
|
208 | 208 | $ hg debugsuccessorssets 'all()' --closest |
|
209 | 209 | d20a80d4def3 |
|
210 | 210 | d20a80d4def3 |
|
211 | 211 | 82623d38b9ba |
|
212 | 212 | 82623d38b9ba |
|
213 | 213 | 392fd25390da |
|
214 | 214 | 392fd25390da |
|
215 | 215 | $ hg debugsuccessorssets 'all()' --closest --hidden |
|
216 | 216 | d20a80d4def3 |
|
217 | 217 | d20a80d4def3 |
|
218 | 218 | 007dc284c1f8 |
|
219 | 219 | 82623d38b9ba |
|
220 | 220 | 392fd25390da |
|
221 | 221 | 82623d38b9ba |
|
222 | 222 | 82623d38b9ba |
|
223 | 223 | 392fd25390da |
|
224 | 224 | 392fd25390da |
|
225 | 225 | $ cd .. |
|
226 | 226 | |
|
227 | 227 | do not take unknown node in account if they are final |
|
228 | 228 | ----------------------------------------------------- |
|
229 | 229 | |
|
230 | 230 | $ newcase final-unknown |
|
231 | 231 | $ hg debugobsolete `getid A_0` `getid A_1` |
|
232 | 232 | obsoleted 1 changesets |
|
233 | 233 | $ hg debugobsolete `getid A_1` `getid A_2` |
|
234 | 234 | obsoleted 1 changesets |
|
235 | 235 | $ hg debugobsolete `getid A_0` bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |
|
236 | 236 | $ hg debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccccccccccccccccccccc |
|
237 | 237 | $ hg debugobsolete `getid A_1` dddddddddddddddddddddddddddddddddddddddd |
|
238 | 238 | |
|
239 | 239 | $ hg debugsuccessorssets --hidden 'desc('A_0')' |
|
240 | 240 | 007dc284c1f8 |
|
241 | 241 | 392fd25390da |
|
242 | 242 | $ hg debugsuccessorssets 'desc('A_0')' --closest |
|
243 | 243 | $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden |
|
244 | 244 | 007dc284c1f8 |
|
245 | 245 | 82623d38b9ba |
|
246 | 246 | |
|
247 | 247 | $ cd .. |
|
248 | 248 | |
|
249 | 249 | divergence that converge again is not divergence anymore |
|
250 | 250 | ----------------------------------------------------- |
|
251 | 251 | |
|
252 | 252 | $ newcase converged_divergence |
|
253 | 253 | $ hg debugobsolete `getid A_0` `getid A_1` |
|
254 | 254 | obsoleted 1 changesets |
|
255 | 255 | $ hg debugobsolete `getid A_0` `getid A_2` |
|
256 | 256 | 2 new content-divergent changesets |
|
257 | 257 | $ mkcommit A_3 |
|
258 | 258 | created new head |
|
259 | 259 | $ hg debugobsolete `getid A_1` `getid A_3` |
|
260 | 260 | obsoleted 1 changesets |
|
261 | 261 | $ hg debugobsolete `getid A_2` `getid A_3` |
|
262 | 262 | obsoleted 1 changesets |
|
263 | 263 | $ hg log -G --hidden |
|
264 | 264 | @ 4:01f36c5a8fda A_3 |
|
265 | 265 | | |
|
266 | 266 | | x 3:392fd25390da A_2 [rewritten as 4:01f36c5a8fda] |
|
267 | 267 | |/ |
|
268 | 268 | | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda] |
|
269 | 269 | |/ |
|
270 | 270 | | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da] |
|
271 | 271 | |/ |
|
272 | 272 | o 0:d20a80d4def3 base |
|
273 | 273 | |
|
274 | 274 | $ hg debugsuccessorssets --hidden 'all()' |
|
275 | 275 | d20a80d4def3 |
|
276 | 276 | d20a80d4def3 |
|
277 | 277 | 007dc284c1f8 |
|
278 | 278 | 01f36c5a8fda |
|
279 | 279 | 82623d38b9ba |
|
280 | 280 | 01f36c5a8fda |
|
281 | 281 | 392fd25390da |
|
282 | 282 | 01f36c5a8fda |
|
283 | 283 | 01f36c5a8fda |
|
284 | 284 | 01f36c5a8fda |
|
285 | 285 | $ hg log -r 'contentdivergent()' |
|
286 | 286 | $ hg debugsuccessorssets 'all()' --closest |
|
287 | 287 | d20a80d4def3 |
|
288 | 288 | d20a80d4def3 |
|
289 | 289 | 01f36c5a8fda |
|
290 | 290 | 01f36c5a8fda |
|
291 | 291 | $ hg debugsuccessorssets 'all()' --closest --hidden |
|
292 | 292 | d20a80d4def3 |
|
293 | 293 | d20a80d4def3 |
|
294 | 294 | 007dc284c1f8 |
|
295 | 295 | 82623d38b9ba |
|
296 | 296 | 392fd25390da |
|
297 | 297 | 82623d38b9ba |
|
298 | 298 | 82623d38b9ba |
|
299 | 299 | 392fd25390da |
|
300 | 300 | 392fd25390da |
|
301 | 301 | 01f36c5a8fda |
|
302 | 302 | 01f36c5a8fda |
|
303 | 303 | $ cd .. |
|
304 | 304 | |
|
305 | 305 | split is not divergences |
|
306 | 306 | ----------------------------- |
|
307 | 307 | |
|
308 | 308 | $ newcase split |
|
309 | 309 | $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2` |
|
310 | 310 | obsoleted 1 changesets |
|
311 | 311 | $ hg log -G --hidden |
|
312 | 312 | o 3:392fd25390da A_2 |
|
313 | 313 | | |
|
314 | 314 | | o 2:82623d38b9ba A_1 |
|
315 | 315 | |/ |
|
316 | 316 | | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da] |
|
317 | 317 | |/ |
|
318 | 318 | @ 0:d20a80d4def3 base |
|
319 | 319 | |
|
320 | 320 | $ hg debugsuccessorssets --hidden 'all()' |
|
321 | 321 | d20a80d4def3 |
|
322 | 322 | d20a80d4def3 |
|
323 | 323 | 007dc284c1f8 |
|
324 | 324 | 82623d38b9ba 392fd25390da |
|
325 | 325 | 82623d38b9ba |
|
326 | 326 | 82623d38b9ba |
|
327 | 327 | 392fd25390da |
|
328 | 328 | 392fd25390da |
|
329 | 329 | $ hg log -r 'contentdivergent()' |
|
330 | 330 | $ hg debugsuccessorssets 'all()' --closest |
|
331 | 331 | d20a80d4def3 |
|
332 | 332 | d20a80d4def3 |
|
333 | 333 | 82623d38b9ba |
|
334 | 334 | 82623d38b9ba |
|
335 | 335 | 392fd25390da |
|
336 | 336 | 392fd25390da |
|
337 | 337 | $ hg debugsuccessorssets 'all()' --closest --hidden |
|
338 | 338 | d20a80d4def3 |
|
339 | 339 | d20a80d4def3 |
|
340 | 340 | 007dc284c1f8 |
|
341 | 341 | 82623d38b9ba 392fd25390da |
|
342 | 342 | 82623d38b9ba |
|
343 | 343 | 82623d38b9ba |
|
344 | 344 | 392fd25390da |
|
345 | 345 | 392fd25390da |
|
346 | 346 | |
|
347 | 347 | Even when subsequent rewriting happen |
|
348 | 348 | |
|
349 | 349 | $ mkcommit A_3 |
|
350 | 350 | created new head |
|
351 | 351 | $ hg debugobsolete `getid A_1` `getid A_3` |
|
352 | 352 | obsoleted 1 changesets |
|
353 | 353 | $ hg up 0 |
|
354 | 354 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
355 | 355 | $ mkcommit A_4 |
|
356 | 356 | created new head |
|
357 | 357 | $ hg debugobsolete `getid A_2` `getid A_4` |
|
358 | 358 | obsoleted 1 changesets |
|
359 | 359 | $ hg up 0 |
|
360 | 360 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
361 | 361 | $ mkcommit A_5 |
|
362 | 362 | created new head |
|
363 | 363 | $ hg debugobsolete `getid A_4` `getid A_5` |
|
364 | 364 | obsoleted 1 changesets |
|
365 | 365 | $ hg log -G --hidden |
|
366 | 366 | @ 6:e442cfc57690 A_5 |
|
367 | 367 | | |
|
368 | 368 | | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690] |
|
369 | 369 | |/ |
|
370 | 370 | | o 4:01f36c5a8fda A_3 |
|
371 | 371 | |/ |
|
372 | 372 | | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a] |
|
373 | 373 | |/ |
|
374 | 374 | | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda] |
|
375 | 375 | |/ |
|
376 | 376 | | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da] |
|
377 | 377 | |/ |
|
378 | 378 | o 0:d20a80d4def3 base |
|
379 | 379 | |
|
380 | 380 | $ hg debugsuccessorssets --hidden 'all()' |
|
381 | 381 | d20a80d4def3 |
|
382 | 382 | d20a80d4def3 |
|
383 | 383 | 007dc284c1f8 |
|
384 | 384 | 01f36c5a8fda e442cfc57690 |
|
385 | 385 | 82623d38b9ba |
|
386 | 386 | 01f36c5a8fda |
|
387 | 387 | 392fd25390da |
|
388 | 388 | e442cfc57690 |
|
389 | 389 | 01f36c5a8fda |
|
390 | 390 | 01f36c5a8fda |
|
391 | 391 | 6a411f0d7a0a |
|
392 | 392 | e442cfc57690 |
|
393 | 393 | e442cfc57690 |
|
394 | 394 | e442cfc57690 |
|
395 | 395 | $ hg debugsuccessorssets 'all()' --closest |
|
396 | 396 | d20a80d4def3 |
|
397 | 397 | d20a80d4def3 |
|
398 | 398 | 01f36c5a8fda |
|
399 | 399 | 01f36c5a8fda |
|
400 | 400 | e442cfc57690 |
|
401 | 401 | e442cfc57690 |
|
402 | 402 | $ hg debugsuccessorssets 'all()' --closest --hidden |
|
403 | 403 | d20a80d4def3 |
|
404 | 404 | d20a80d4def3 |
|
405 | 405 | 007dc284c1f8 |
|
406 | 406 | 82623d38b9ba 392fd25390da |
|
407 | 407 | 82623d38b9ba |
|
408 | 408 | 82623d38b9ba |
|
409 | 409 | 392fd25390da |
|
410 | 410 | 392fd25390da |
|
411 | 411 | 01f36c5a8fda |
|
412 | 412 | 01f36c5a8fda |
|
413 | 413 | 6a411f0d7a0a |
|
414 | 414 | e442cfc57690 |
|
415 | 415 | e442cfc57690 |
|
416 | 416 | e442cfc57690 |
|
417 | 417 | $ hg log -r 'contentdivergent()' |
|
418 | 418 | |
|
419 | 419 | Check more complex obsolescence graft (with divergence) |
|
420 | 420 | |
|
421 | 421 | $ mkcommit B_0; hg up 0 |
|
422 | 422 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
423 | 423 | $ hg debugobsolete `getid B_0` `getid A_2` |
|
424 | 424 | obsoleted 1 changesets |
|
425 | 425 | $ mkcommit A_7; hg up 0 |
|
426 | 426 | created new head |
|
427 | 427 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
428 | 428 | $ mkcommit A_8; hg up 0 |
|
429 | 429 | created new head |
|
430 | 430 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
431 | 431 | $ hg debugobsolete `getid A_5` `getid A_7` `getid A_8` |
|
432 | 432 | obsoleted 1 changesets |
|
433 | 433 | $ mkcommit A_9; hg up 0 |
|
434 | 434 | created new head |
|
435 | 435 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
436 | 436 | $ hg debugobsolete `getid A_5` `getid A_9` |
|
437 | 437 | 4 new content-divergent changesets |
|
438 | 438 | $ hg log -G --hidden |
|
439 | 439 | * 10:bed64f5d2f5a A_9 |
|
440 | 440 | | |
|
441 | 441 | | * 9:14608b260df8 A_8 |
|
442 | 442 | |/ |
|
443 | 443 | | * 8:7ae126973a96 A_7 |
|
444 | 444 | |/ |
|
445 | 445 | | x 7:3750ebee865d B_0 [rewritten as 3:392fd25390da] |
|
446 | 446 | | | |
|
447 | 447 | | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8] |
|
448 | 448 | |/ |
|
449 | 449 | | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690] |
|
450 | 450 | |/ |
|
451 | 451 | | * 4:01f36c5a8fda A_3 |
|
452 | 452 | |/ |
|
453 | 453 | | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a] |
|
454 | 454 | |/ |
|
455 | 455 | | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda] |
|
456 | 456 | |/ |
|
457 | 457 | | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da] |
|
458 | 458 | |/ |
|
459 | 459 | @ 0:d20a80d4def3 base |
|
460 | 460 | |
|
461 | 461 | $ hg debugsuccessorssets --hidden 'all()' |
|
462 | 462 | d20a80d4def3 |
|
463 | 463 | d20a80d4def3 |
|
464 | 464 | 007dc284c1f8 |
|
465 | 465 | 01f36c5a8fda bed64f5d2f5a |
|
466 | 466 | 01f36c5a8fda 7ae126973a96 14608b260df8 |
|
467 | 467 | 82623d38b9ba |
|
468 | 468 | 01f36c5a8fda |
|
469 | 469 | 392fd25390da |
|
470 | 470 | bed64f5d2f5a |
|
471 | 471 | 7ae126973a96 14608b260df8 |
|
472 | 472 | 01f36c5a8fda |
|
473 | 473 | 01f36c5a8fda |
|
474 | 474 | 6a411f0d7a0a |
|
475 | 475 | bed64f5d2f5a |
|
476 | 476 | 7ae126973a96 14608b260df8 |
|
477 | 477 | e442cfc57690 |
|
478 | 478 | bed64f5d2f5a |
|
479 | 479 | 7ae126973a96 14608b260df8 |
|
480 | 480 | 3750ebee865d |
|
481 | 481 | bed64f5d2f5a |
|
482 | 482 | 7ae126973a96 14608b260df8 |
|
483 | 483 | 7ae126973a96 |
|
484 | 484 | 7ae126973a96 |
|
485 | 485 | 14608b260df8 |
|
486 | 486 | 14608b260df8 |
|
487 | 487 | bed64f5d2f5a |
|
488 | 488 | bed64f5d2f5a |
|
489 | 489 | $ hg debugsuccessorssets 'all()' --closest |
|
490 | 490 | d20a80d4def3 |
|
491 | 491 | d20a80d4def3 |
|
492 | 492 | 01f36c5a8fda |
|
493 | 493 | 01f36c5a8fda |
|
494 | 494 | 7ae126973a96 |
|
495 | 495 | 7ae126973a96 |
|
496 | 496 | 14608b260df8 |
|
497 | 497 | 14608b260df8 |
|
498 | 498 | bed64f5d2f5a |
|
499 | 499 | bed64f5d2f5a |
|
500 | 500 | $ hg debugsuccessorssets 'all()' --closest --hidden |
|
501 | 501 | d20a80d4def3 |
|
502 | 502 | d20a80d4def3 |
|
503 | 503 | 007dc284c1f8 |
|
504 | 504 | 82623d38b9ba 392fd25390da |
|
505 | 505 | 82623d38b9ba |
|
506 | 506 | 82623d38b9ba |
|
507 | 507 | 392fd25390da |
|
508 | 508 | 392fd25390da |
|
509 | 509 | 01f36c5a8fda |
|
510 | 510 | 01f36c5a8fda |
|
511 | 511 | 6a411f0d7a0a |
|
512 | 512 | e442cfc57690 |
|
513 | 513 | e442cfc57690 |
|
514 | 514 | e442cfc57690 |
|
515 | 515 | 3750ebee865d |
|
516 | 516 | 392fd25390da |
|
517 | 517 | 7ae126973a96 |
|
518 | 518 | 7ae126973a96 |
|
519 | 519 | 14608b260df8 |
|
520 | 520 | 14608b260df8 |
|
521 | 521 | bed64f5d2f5a |
|
522 | 522 | bed64f5d2f5a |
|
523 | 523 | $ hg log -r 'contentdivergent()' |
|
524 | 524 | 4:01f36c5a8fda A_3 |
|
525 | 525 | 8:7ae126973a96 A_7 |
|
526 | 526 | 9:14608b260df8 A_8 |
|
527 | 527 | 10:bed64f5d2f5a A_9 |
|
528 | 528 | |
|
529 | 529 | fix the divergence |
|
530 | 530 | |
|
531 | 531 | $ mkcommit A_A; hg up 0 |
|
532 | 532 | created new head |
|
533 | 533 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
534 | 534 | $ hg debugobsolete `getid A_9` `getid A_A` |
|
535 | 535 | obsoleted 1 changesets |
|
536 | 536 | $ hg debugobsolete `getid A_7` `getid A_A` |
|
537 | 537 | obsoleted 1 changesets |
|
538 | 538 | $ hg debugobsolete `getid A_8` `getid A_A` |
|
539 | 539 | obsoleted 1 changesets |
|
540 | 540 | $ hg log -G --hidden |
|
541 | 541 | o 11:a139f71be9da A_A |
|
542 | 542 | | |
|
543 | 543 | | x 10:bed64f5d2f5a A_9 [rewritten as 11:a139f71be9da] |
|
544 | 544 | |/ |
|
545 | 545 | | x 9:14608b260df8 A_8 [rewritten as 11:a139f71be9da] |
|
546 | 546 | |/ |
|
547 | 547 | | x 8:7ae126973a96 A_7 [rewritten as 11:a139f71be9da] |
|
548 | 548 | |/ |
|
549 | 549 | | x 7:3750ebee865d B_0 [rewritten as 3:392fd25390da] |
|
550 | 550 | | | |
|
551 | 551 | | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8] |
|
552 | 552 | |/ |
|
553 | 553 | | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690] |
|
554 | 554 | |/ |
|
555 | 555 | | o 4:01f36c5a8fda A_3 |
|
556 | 556 | |/ |
|
557 | 557 | | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a] |
|
558 | 558 | |/ |
|
559 | 559 | | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda] |
|
560 | 560 | |/ |
|
561 | 561 | | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da] |
|
562 | 562 | |/ |
|
563 | 563 | @ 0:d20a80d4def3 base |
|
564 | 564 | |
|
565 | 565 | $ hg debugsuccessorssets --hidden 'all()' |
|
566 | 566 | d20a80d4def3 |
|
567 | 567 | d20a80d4def3 |
|
568 | 568 | 007dc284c1f8 |
|
569 | 569 | 01f36c5a8fda a139f71be9da |
|
570 | 570 | 82623d38b9ba |
|
571 | 571 | 01f36c5a8fda |
|
572 | 572 | 392fd25390da |
|
573 | 573 | a139f71be9da |
|
574 | 574 | 01f36c5a8fda |
|
575 | 575 | 01f36c5a8fda |
|
576 | 576 | 6a411f0d7a0a |
|
577 | 577 | a139f71be9da |
|
578 | 578 | e442cfc57690 |
|
579 | 579 | a139f71be9da |
|
580 | 580 | 3750ebee865d |
|
581 | 581 | a139f71be9da |
|
582 | 582 | 7ae126973a96 |
|
583 | 583 | a139f71be9da |
|
584 | 584 | 14608b260df8 |
|
585 | 585 | a139f71be9da |
|
586 | 586 | bed64f5d2f5a |
|
587 | 587 | a139f71be9da |
|
588 | 588 | a139f71be9da |
|
589 | 589 | a139f71be9da |
|
590 | 590 | $ hg debugsuccessorssets 'all()' --closest |
|
591 | 591 | d20a80d4def3 |
|
592 | 592 | d20a80d4def3 |
|
593 | 593 | 01f36c5a8fda |
|
594 | 594 | 01f36c5a8fda |
|
595 | 595 | a139f71be9da |
|
596 | 596 | a139f71be9da |
|
597 | 597 | $ hg debugsuccessorssets 'all()' --closest --hidden |
|
598 | 598 | d20a80d4def3 |
|
599 | 599 | d20a80d4def3 |
|
600 | 600 | 007dc284c1f8 |
|
601 | 601 | 82623d38b9ba 392fd25390da |
|
602 | 602 | 82623d38b9ba |
|
603 | 603 | 82623d38b9ba |
|
604 | 604 | 392fd25390da |
|
605 | 605 | 392fd25390da |
|
606 | 606 | 01f36c5a8fda |
|
607 | 607 | 01f36c5a8fda |
|
608 | 608 | 6a411f0d7a0a |
|
609 | 609 | e442cfc57690 |
|
610 | 610 | e442cfc57690 |
|
611 | 611 | e442cfc57690 |
|
612 | 612 | 3750ebee865d |
|
613 | 613 | 392fd25390da |
|
614 | 614 | 7ae126973a96 |
|
615 | 615 | a139f71be9da |
|
616 | 616 | 14608b260df8 |
|
617 | 617 | a139f71be9da |
|
618 | 618 | bed64f5d2f5a |
|
619 | 619 | a139f71be9da |
|
620 | 620 | a139f71be9da |
|
621 | 621 | a139f71be9da |
|
622 | 622 | $ hg log -r 'contentdivergent()' |
|
623 | 623 | |
|
624 | 624 | #if serve |
|
625 | 625 | |
|
626 | 626 | $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid --config web.view=all \ |
|
627 | 627 | > -A access.log -E errors.log |
|
628 | 628 | $ cat hg.pid >> $DAEMON_PIDS |
|
629 | 629 | |
|
630 | 630 | check an obsolete changeset that was rewritten and also split |
|
631 | 631 | |
|
632 | 632 | $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=paper' | egrep 'rewritten|split' |
|
633 |
<td>rewritten as <a href="/rev/bed64f5d2f5a?style=paper">bed64f5d2f5a</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span> |
|
|
633 | <td>rewritten as <a href="/rev/bed64f5d2f5a?style=paper">bed64f5d2f5a</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span><br> | |
|
634 | split as <a href="/rev/7ae126973a96?style=paper">7ae126973a96</a> <a href="/rev/14608b260df8?style=paper">14608b260df8</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td> | |
|
634 | 635 | $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=coal' | egrep 'rewritten|split' |
|
635 |
<td>rewritten as <a href="/rev/bed64f5d2f5a?style=coal">bed64f5d2f5a</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span> |
|
|
636 | <td>rewritten as <a href="/rev/bed64f5d2f5a?style=coal">bed64f5d2f5a</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span><br> | |
|
637 | split as <a href="/rev/7ae126973a96?style=coal">7ae126973a96</a> <a href="/rev/14608b260df8?style=coal">14608b260df8</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td> | |
|
636 | 638 | $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=gitweb' | egrep 'rewritten|split' |
|
637 | <tr><td>obsolete</td><td>rewritten as <a class="list" href="/rev/bed64f5d2f5a?style=gitweb">bed64f5d2f5a</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>split as <a class="list" href="/rev/7ae126973a96?style=gitweb">7ae126973a96</a> <a class="list" href="/rev/14608b260df8?style=gitweb">14608b260df8</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td></tr> | |
|
639 | <td>rewritten as <a class="list" href="/rev/bed64f5d2f5a?style=gitweb">bed64f5d2f5a</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td> | |
|
640 | <td>split as <a class="list" href="/rev/7ae126973a96?style=gitweb">7ae126973a96</a> <a class="list" href="/rev/14608b260df8?style=gitweb">14608b260df8</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td> | |
|
638 | 641 | $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=monoblue' | egrep 'rewritten|split' |
|
639 | <dt>obsolete</dt><dd>rewritten as <a href="/rev/bed64f5d2f5a?style=monoblue">bed64f5d2f5a</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>split as <a href="/rev/7ae126973a96?style=monoblue">7ae126973a96</a> <a href="/rev/14608b260df8?style=monoblue">14608b260df8</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></dd> | |
|
642 | <dd>rewritten as <a href="/rev/bed64f5d2f5a?style=monoblue">bed64f5d2f5a</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></dd> | |
|
643 | <dd>split as <a href="/rev/7ae126973a96?style=monoblue">7ae126973a96</a> <a href="/rev/14608b260df8?style=monoblue">14608b260df8</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></dd> | |
|
640 | 644 | $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=spartan' | egrep 'rewritten|split' |
|
641 |
|
|
|
645 | <td class="obsolete">rewritten as <a href="/rev/bed64f5d2f5a?style=spartan">bed64f5d2f5a</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td> | |
|
646 | <td class="obsolete">split as <a href="/rev/7ae126973a96?style=spartan">7ae126973a96</a> <a href="/rev/14608b260df8?style=spartan">14608b260df8</a> by test <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td> | |
|
642 | 647 | |
|
643 | 648 | $ killdaemons.py |
|
644 | 649 | |
|
645 | 650 | #endif |
|
646 | 651 | |
|
647 | 652 | $ cd .. |
|
648 | 653 | |
|
649 | 654 | |
|
650 | 655 | Subset does not diverge |
|
651 | 656 | ------------------------------ |
|
652 | 657 | |
|
653 | 658 | Do not report divergent successors-set if it is a subset of another |
|
654 | 659 | successors-set. (report [A,B] not [A] + [A,B]) |
|
655 | 660 | |
|
656 | 661 | $ newcase subset |
|
657 | 662 | $ hg debugobsolete `getid A_0` `getid A_2` |
|
658 | 663 | obsoleted 1 changesets |
|
659 | 664 | $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2` |
|
660 | 665 | $ hg debugsuccessorssets --hidden 'desc('A_0')' |
|
661 | 666 | 007dc284c1f8 |
|
662 | 667 | 82623d38b9ba 392fd25390da |
|
663 | 668 | $ hg debugsuccessorssets 'desc('A_0')' --closest |
|
664 | 669 | $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden |
|
665 | 670 | 007dc284c1f8 |
|
666 | 671 | 82623d38b9ba 392fd25390da |
|
667 | 672 | |
|
668 | 673 | $ cd .. |
|
669 | 674 | |
|
670 | 675 | Use scmutil.cleanupnodes API to create divergence |
|
671 | 676 | |
|
672 | 677 | $ hg init cleanupnodes |
|
673 | 678 | $ cd cleanupnodes |
|
674 | 679 | $ hg debugdrawdag <<'EOS' |
|
675 | 680 | > B1 B3 B4 |
|
676 | 681 | > | \| |
|
677 | 682 | > A Z |
|
678 | 683 | > EOS |
|
679 | 684 | |
|
680 | 685 | $ hg update -q B1 |
|
681 | 686 | $ echo 3 >> B |
|
682 | 687 | $ hg commit --amend -m B2 |
|
683 | 688 | $ cat > $TESTTMP/scmutilcleanup.py <<EOF |
|
684 | 689 | > from mercurial import registrar, scmutil |
|
685 | 690 | > cmdtable = {} |
|
686 | 691 | > command = registrar.command(cmdtable) |
|
687 | 692 | > @command('cleanup') |
|
688 | 693 | > def cleanup(ui, repo): |
|
689 | 694 | > def node(expr): |
|
690 | 695 | > unfi = repo.unfiltered() |
|
691 | 696 | > rev = unfi.revs(expr).first() |
|
692 | 697 | > return unfi.changelog.node(rev) |
|
693 | 698 | > with repo.wlock(), repo.lock(), repo.transaction('delayedstrip'): |
|
694 | 699 | > mapping = {node('desc(B1)'): [node('desc(B3)')], |
|
695 | 700 | > node('desc(B3)'): [node('desc(B4)')]} |
|
696 | 701 | > scmutil.cleanupnodes(repo, mapping, 'test') |
|
697 | 702 | > EOF |
|
698 | 703 | |
|
699 | 704 | $ rm .hg/localtags |
|
700 | 705 | $ hg cleanup --config extensions.t=$TESTTMP/scmutilcleanup.py |
|
701 | 706 | 2 new content-divergent changesets |
|
702 | 707 | $ hg log -G -T '{rev}:{node|short} {desc} {instabilities}' -r 'sort(all(), topo)' |
|
703 | 708 | @ 5:1a2a9b5b0030 B2 content-divergent |
|
704 | 709 | | |
|
705 | 710 | | * 4:70d5a63ca112 B4 content-divergent |
|
706 | 711 | | | |
|
707 | 712 | | o 1:48b9aae0607f Z |
|
708 | 713 | | |
|
709 | 714 | o 0:426bada5c675 A |
|
710 | 715 | |
|
711 | 716 | $ hg debugobsolete |
|
712 | 717 | a178212c3433c4e77b573f6011e29affb8aefa33 1a2a9b5b0030632400aa78e00388c20f99d3ec44 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'} |
|
713 | 718 | a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'test', 'user': 'test'} |
|
714 | 719 | ad6478fb94ecec98b86daae98722865d494ac561 70d5a63ca112acb3764bc1d7320ca90ea688d671 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'test', 'user': 'test'} |
General Comments 0
You need to be logged in to leave comments.
Login now