Show More
@@ -148,6 +148,12 b' class filectx(object):' | |||||
148 | def __eq__(self, other): |
|
148 | def __eq__(self, other): | |
149 | return self._path == other._path and self._changeid == other._changeid |
|
149 | return self._path == other._path and self._changeid == other._changeid | |
150 |
|
150 | |||
|
151 | def filectx(self, fileid): | |||
|
152 | '''opens an arbitrary revision of the file without | |||
|
153 | opening a new filelog''' | |||
|
154 | return filectx(self._repo, self._path, fileid=fileid, | |||
|
155 | filelog=self._filelog) | |||
|
156 | ||||
151 | def filerev(self): return self._filerev |
|
157 | def filerev(self): return self._filerev | |
152 | def filenode(self): return self._filenode |
|
158 | def filenode(self): return self._filenode | |
153 | def filelog(self): return self._filelog |
|
159 | def filelog(self): return self._filelog |
@@ -70,14 +70,12 b' class hgweb(object):' | |||||
70 | if len(files) > self.maxfiles: |
|
70 | if len(files) > self.maxfiles: | |
71 | yield self.t("fileellipses") |
|
71 | yield self.t("fileellipses") | |
72 |
|
72 | |||
73 |
def siblings(self, siblings=[], |
|
73 | def siblings(self, siblings=[], hiderev=None, **args): | |
74 | if not rev: |
|
74 | siblings = [s for s in siblings if s.node() != nullid] | |
75 | rev = lambda x: "" |
|
75 | if len(siblings) == 1 and siblings[0].rev() == hiderev: | |
76 | siblings = [s for s in siblings if s != nullid] |
|
|||
77 | if len(siblings) == 1 and rev(siblings[0]) == hiderev: |
|
|||
78 | return |
|
76 | return | |
79 | for s in siblings: |
|
77 | for s in siblings: | |
80 |
yield dict(node=hex(s), rev=rev( |
|
78 | yield dict(node=hex(s.node()), rev=s.rev(), **args) | |
81 |
|
79 | |||
82 | def renamelink(self, fl, node): |
|
80 | def renamelink(self, fl, node): | |
83 | r = fl.renamed(node) |
|
81 | r = fl.renamed(node) | |
@@ -191,23 +189,19 b' class hgweb(object):' | |||||
191 | cl = self.repo.changelog |
|
189 | cl = self.repo.changelog | |
192 | l = [] # build a list in forward order for efficiency |
|
190 | l = [] # build a list in forward order for efficiency | |
193 | for i in range(start, end): |
|
191 | for i in range(start, end): | |
194 |
|
|
192 | ctx = self.repo.changectx(i) | |
195 |
|
|
193 | n = ctx.node() | |
196 | hn = hex(n) |
|
|||
197 |
|
194 | |||
198 | l.insert(0, {"parity": parity, |
|
195 | l.insert(0, {"parity": parity, | |
199 |
"author": c |
|
196 | "author": ctx.user(), | |
200 |
"parent": self.siblings(c |
|
197 | "parent": self.siblings(ctx.parents(), i - 1), | |
201 | cl.rev(n) - 1), |
|
198 | "child": self.siblings(ctx.children(), i + 1), | |
202 | "child": self.siblings(cl.children(n), cl.rev, |
|
|||
203 | cl.rev(n) + 1), |
|
|||
204 | "changelogtag": self.showtag("changelogtag",n), |
|
199 | "changelogtag": self.showtag("changelogtag",n), | |
205 |
" |
|
200 | "desc": ctx.description(), | |
206 |
"de |
|
201 | "date": ctx.date(), | |
207 |
" |
|
202 | "files": self.listfilediffs(ctx.files(), n), | |
208 | "files": self.listfilediffs(changes[3], n), |
|
|||
209 | "rev": i, |
|
203 | "rev": i, | |
210 | "node": hn}) |
|
204 | "node": hex(n)}) | |
211 | parity = 1 - parity |
|
205 | parity = 1 - parity | |
212 |
|
206 | |||
213 | for e in l: |
|
207 | for e in l: | |
@@ -223,7 +217,7 b' class hgweb(object):' | |||||
223 |
|
217 | |||
224 | yield self.t(shortlog and 'shortlog' or 'changelog', |
|
218 | yield self.t(shortlog and 'shortlog' or 'changelog', | |
225 | changenav=changenav, |
|
219 | changenav=changenav, | |
226 |
|
|
220 | node=hex(cl.tip()), | |
227 | rev=pos, changesets=count, entries=changelist, |
|
221 | rev=pos, changesets=count, entries=changelist, | |
228 | archives=self.archivelist("tip")) |
|
222 | archives=self.archivelist("tip")) | |
229 |
|
223 | |||
@@ -238,64 +232,59 b' class hgweb(object):' | |||||
238 | for i in range(cl.count() - 1, 0, -100): |
|
232 | for i in range(cl.count() - 1, 0, -100): | |
239 | l = [] |
|
233 | l = [] | |
240 | for j in range(max(0, i - 100), i): |
|
234 | for j in range(max(0, i - 100), i): | |
241 |
|
|
235 | ctx = self.repo.changectx(j) | |
242 |
|
|
236 | l.append(ctx) | |
243 | l.append((n, j, changes)) |
|
|||
244 | l.reverse() |
|
237 | l.reverse() | |
245 | for e in l: |
|
238 | for e in l: | |
246 | yield e |
|
239 | yield e | |
247 |
|
240 | |||
248 |
for |
|
241 | for ctx in revgen(): | |
249 | miss = 0 |
|
242 | miss = 0 | |
250 | for q in qw: |
|
243 | for q in qw: | |
251 |
if not (q in c |
|
244 | if not (q in ctx.user().lower() or | |
252 |
q in c |
|
245 | q in ctx.description().lower() or | |
253 |
q in " ".join(c |
|
246 | q in " ".join(ctx.files()[:20]).lower()): | |
254 | miss = 1 |
|
247 | miss = 1 | |
255 | break |
|
248 | break | |
256 | if miss: |
|
249 | if miss: | |
257 | continue |
|
250 | continue | |
258 |
|
251 | |||
259 | count += 1 |
|
252 | count += 1 | |
260 |
|
|
253 | n = ctx.node() | |
261 |
|
254 | |||
262 | yield self.t('searchentry', |
|
255 | yield self.t('searchentry', | |
263 | parity=self.stripes(count), |
|
256 | parity=self.stripes(count), | |
264 |
author=c |
|
257 | author=ctx.user(), | |
265 |
parent=self.siblings(c |
|
258 | parent=self.siblings(ctx.parents()), | |
266 |
child=self.siblings(c |
|
259 | child=self.siblings(ctx.children()), | |
267 | changelogtag=self.showtag("changelogtag",n), |
|
260 | changelogtag=self.showtag("changelogtag",n), | |
268 |
|
|
261 | desc=ctx.description(), | |
269 |
de |
|
262 | date=ctx.date(), | |
270 | date=changes[2], |
|
263 | files=self.listfilediffs(ctx.files(), n), | |
271 |
|
|
264 | rev=ctx.rev(), | |
272 |
|
|
265 | node=hex(n)) | |
273 | node=hn) |
|
|||
274 |
|
266 | |||
275 | if count >= self.maxchanges: |
|
267 | if count >= self.maxchanges: | |
276 | break |
|
268 | break | |
277 |
|
269 | |||
278 | cl = self.repo.changelog |
|
270 | cl = self.repo.changelog | |
279 | mf = cl.read(cl.tip())[0] |
|
|||
280 |
|
271 | |||
281 | yield self.t('search', |
|
272 | yield self.t('search', | |
282 | query=query, |
|
273 | query=query, | |
283 |
|
|
274 | node=hex(cl.tip()), | |
284 | entries=changelist) |
|
275 | entries=changelist) | |
285 |
|
276 | |||
286 | def changeset(self, nodeid): |
|
277 | def changeset(self, nodeid): | |
287 |
c |
|
278 | ctx = self.repo.changectx(nodeid) | |
288 |
n = |
|
279 | n = ctx.node() | |
289 | nodeid = hex(n) |
|
280 | parents = ctx.parents() | |
290 | changes = cl.read(n) |
|
281 | p1 = parents[0].node() | |
291 | p1 = cl.parents(n)[0] |
|
|||
292 |
|
282 | |||
293 | files = [] |
|
283 | files = [] | |
294 | mf = self.repo.manifest.read(changes[0]) |
|
|||
295 | parity = 0 |
|
284 | parity = 0 | |
296 |
for f in c |
|
285 | for f in ctx.files(): | |
297 | files.append(self.t("filenodelink", |
|
286 | files.append(self.t("filenodelink", | |
298 |
|
|
287 | node=hex(n), file=f, | |
299 | parity=parity)) |
|
288 | parity=parity)) | |
300 | parity = 1 - parity |
|
289 | parity = 1 - parity | |
301 |
|
290 | |||
@@ -304,22 +293,21 b' class hgweb(object):' | |||||
304 |
|
293 | |||
305 | yield self.t('changeset', |
|
294 | yield self.t('changeset', | |
306 | diff=diff, |
|
295 | diff=diff, | |
307 |
rev=c |
|
296 | rev=ctx.rev(), | |
308 |
node= |
|
297 | node=hex(n), | |
309 |
parent=self.siblings( |
|
298 | parent=self.siblings(parents), | |
310 |
child=self.siblings(c |
|
299 | child=self.siblings(ctx.children()), | |
311 | changesettag=self.showtag("changesettag",n), |
|
300 | changesettag=self.showtag("changesettag",n), | |
312 |
|
|
301 | author=ctx.user(), | |
313 |
|
|
302 | desc=ctx.description(), | |
314 |
de |
|
303 | date=ctx.date(), | |
315 | date=changes[2], |
|
|||
316 | files=files, |
|
304 | files=files, | |
317 | archives=self.archivelist(nodeid)) |
|
305 | archives=self.archivelist(nodeid)) | |
318 |
|
306 | |||
319 |
def filelog(self, f |
|
307 | def filelog(self, fctx): | |
|
308 | f = fctx.path() | |||
320 | cl = self.repo.changelog |
|
309 | cl = self.repo.changelog | |
321 |
fl = |
|
310 | fl = fctx.filelog() | |
322 | filenode = hex(fl.lookup(filenode)) |
|
|||
323 | count = fl.count() |
|
311 | count = fl.count() | |
324 |
|
312 | |||
325 | def entries(**map): |
|
313 | def entries(**map): | |
@@ -327,41 +315,31 b' class hgweb(object):' | |||||
327 | parity = (count - 1) & 1 |
|
315 | parity = (count - 1) & 1 | |
328 |
|
316 | |||
329 | for i in range(count): |
|
317 | for i in range(count): | |
|
318 | ctx = fctx.filectx(i) | |||
330 | n = fl.node(i) |
|
319 | n = fl.node(i) | |
331 | lr = fl.linkrev(n) |
|
|||
332 | cn = cl.node(lr) |
|
|||
333 | cs = cl.read(cl.node(lr)) |
|
|||
334 |
|
320 | |||
335 | l.insert(0, {"parity": parity, |
|
321 | l.insert(0, {"parity": parity, | |
336 | "filenode": hex(n), |
|
|||
337 | "filerev": i, |
|
322 | "filerev": i, | |
338 | "file": f, |
|
323 | "file": f, | |
339 | "node": hex(cn), |
|
324 | "node": hex(ctx.node()), | |
340 |
"author": c |
|
325 | "author": ctx.user(), | |
341 |
"date": c |
|
326 | "date": ctx.date(), | |
342 | "rename": self.renamelink(fl, n), |
|
327 | "rename": self.renamelink(fl, n), | |
343 |
"parent": self.siblings(f |
|
328 | "parent": self.siblings(fctx.parents(), file=f), | |
344 |
|
|
329 | "child": self.siblings(fctx.children(), file=f), | |
345 |
"c |
|
330 | "desc": ctx.description()}) | |
346 | fl.rev, file=f), |
|
|||
347 | "desc": cs[4]}) |
|
|||
348 | parity = 1 - parity |
|
331 | parity = 1 - parity | |
349 |
|
332 | |||
350 | for e in l: |
|
333 | for e in l: | |
351 | yield e |
|
334 | yield e | |
352 |
|
335 | |||
353 |
yield self.t("filelog", file=f, |
|
336 | yield self.t("filelog", file=f, node=hex(fctx.node()), entries=entries) | |
354 |
|
337 | |||
355 |
def filerevision(self, f |
|
338 | def filerevision(self, fctx): | |
356 |
f |
|
339 | f = fctx.path() | |
357 | n = fl.lookup(node) |
|
340 | text = fctx.data() | |
358 | node = hex(n) |
|
341 | fl = fctx.filelog() | |
359 |
|
|
342 | n = fctx.filenode() | |
360 | changerev = fl.linkrev(n) |
|
|||
361 | cl = self.repo.changelog |
|
|||
362 | cn = cl.node(changerev) |
|
|||
363 | cs = cl.read(cn) |
|
|||
364 | mfn = cs[0] |
|
|||
365 |
|
343 | |||
366 | mt = mimetypes.guess_type(f)[0] |
|
344 | mt = mimetypes.guess_type(f)[0] | |
367 | rawtext = text |
|
345 | rawtext = text | |
@@ -378,23 +356,21 b' class hgweb(object):' | |||||
378 |
|
356 | |||
379 | yield self.t("filerevision", |
|
357 | yield self.t("filerevision", | |
380 | file=f, |
|
358 | file=f, | |
381 | filenode=node, |
|
|||
382 | path=_up(f), |
|
359 | path=_up(f), | |
383 | text=lines(), |
|
360 | text=lines(), | |
384 | raw=rawtext, |
|
361 | raw=rawtext, | |
385 | mimetype=mt, |
|
362 | mimetype=mt, | |
386 |
rev= |
|
363 | rev=fctx.rev(), | |
387 | node=hex(cn), |
|
364 | node=hex(fctx.node()), | |
388 |
|
|
365 | author=fctx.user(), | |
389 |
|
|
366 | date=fctx.date(), | |
390 | date=cs[2], |
|
367 | parent=self.siblings(fctx.parents(), file=f), | |
391 |
|
|
368 | child=self.siblings(fctx.children(), file=f), | |
392 | child=self.siblings(fl.children(n), fl.rev, file=f), |
|
|||
393 | rename=self.renamelink(fl, n), |
|
369 | rename=self.renamelink(fl, n), | |
394 |
permissions= |
|
370 | permissions=fctx.manifest().execf(f)) | |
395 |
|
371 | |||
396 |
def fileannotate(self, f |
|
372 | def fileannotate(self, fctx): | |
397 | fctx = self.repo.filectx(f, fileid=node) |
|
373 | f = fctx.path() | |
398 | n = fctx.filenode() |
|
374 | n = fctx.filenode() | |
399 | fl = fctx.filelog() |
|
375 | fl = fctx.filelog() | |
400 |
|
376 | |||
@@ -411,7 +387,6 b' class hgweb(object):' | |||||
411 |
|
387 | |||
412 | yield {"parity": parity, |
|
388 | yield {"parity": parity, | |
413 | "node": hex(f.node()), |
|
389 | "node": hex(f.node()), | |
414 | "filenode": hex(fnode), |
|
|||
415 | "rev": f.rev(), |
|
390 | "rev": f.rev(), | |
416 | "author": name, |
|
391 | "author": name, | |
417 | "file": f.path(), |
|
392 | "file": f.path(), | |
@@ -419,27 +394,20 b' class hgweb(object):' | |||||
419 |
|
394 | |||
420 | yield self.t("fileannotate", |
|
395 | yield self.t("fileannotate", | |
421 | file=f, |
|
396 | file=f, | |
422 | filenode=node, |
|
|||
423 | annotate=annotate, |
|
397 | annotate=annotate, | |
424 | path=_up(f), |
|
398 | path=_up(f), | |
425 | rev=fctx.rev(), |
|
399 | rev=fctx.rev(), | |
426 | node=hex(fctx.node()), |
|
400 | node=hex(fctx.node()), | |
427 | manifest=hex(fctx.changectx().changeset()[0]), |
|
|||
428 | author=fctx.user(), |
|
401 | author=fctx.user(), | |
429 | date=fctx.date(), |
|
402 | date=fctx.date(), | |
430 | rename=self.renamelink(fl, n), |
|
403 | rename=self.renamelink(fl, n), | |
431 |
parent=self.siblings(f |
|
404 | parent=self.siblings(fctx.parents(), file=f), | |
432 |
child=self.siblings(f |
|
405 | child=self.siblings(fctx.children(), file=f), | |
433 | permissions=fctx.manifest().execf(f)) |
|
406 | permissions=fctx.manifest().execf(f)) | |
434 |
|
407 | |||
435 |
def manifest(self, |
|
408 | def manifest(self, ctx, path): | |
436 |
m |
|
409 | mf = ctx.manifest() | |
437 | mn = man.lookup(mnode) |
|
410 | node = ctx.node() | |
438 | mnode = hex(mn) |
|
|||
439 | mf = man.read(mn) |
|
|||
440 | rev = man.rev(mn) |
|
|||
441 | changerev = man.linkrev(mn) |
|
|||
442 | node = self.repo.changelog.node(changerev) |
|
|||
443 |
|
411 | |||
444 | files = {} |
|
412 | files = {} | |
445 |
|
413 | |||
@@ -469,7 +437,6 b' class hgweb(object):' | |||||
469 | continue |
|
437 | continue | |
470 |
|
438 | |||
471 | yield {"file": full, |
|
439 | yield {"file": full, | |
472 | "manifest": mnode, |
|
|||
473 | "filenode": hex(fnode), |
|
440 | "filenode": hex(fnode), | |
474 | "parity": self.stripes(parity), |
|
441 | "parity": self.stripes(parity), | |
475 | "basename": f, |
|
442 | "basename": f, | |
@@ -487,13 +454,11 b' class hgweb(object):' | |||||
487 |
|
454 | |||
488 | yield {"parity": self.stripes(parity), |
|
455 | yield {"parity": self.stripes(parity), | |
489 | "path": os.path.join(path, f), |
|
456 | "path": os.path.join(path, f), | |
490 | "manifest": mnode, |
|
|||
491 | "basename": f[:-1]} |
|
457 | "basename": f[:-1]} | |
492 | parity += 1 |
|
458 | parity += 1 | |
493 |
|
459 | |||
494 | yield self.t("manifest", |
|
460 | yield self.t("manifest", | |
495 |
|
|
461 | rev=ctx.rev(), | |
496 | rev=rev, |
|
|||
497 | node=hex(node), |
|
462 | node=hex(node), | |
498 | path=path, |
|
463 | path=path, | |
499 | up=_up(path), |
|
464 | up=_up(path), | |
@@ -503,7 +468,6 b' class hgweb(object):' | |||||
503 |
|
468 | |||
504 | def tags(self): |
|
469 | def tags(self): | |
505 | cl = self.repo.changelog |
|
470 | cl = self.repo.changelog | |
506 | mf = cl.read(cl.tip())[0] |
|
|||
507 |
|
471 | |||
508 | i = self.repo.tagslist() |
|
472 | i = self.repo.tagslist() | |
509 | i.reverse() |
|
473 | i.reverse() | |
@@ -514,19 +478,17 b' class hgweb(object):' | |||||
514 | if notip and k == "tip": continue |
|
478 | if notip and k == "tip": continue | |
515 | yield {"parity": self.stripes(parity), |
|
479 | yield {"parity": self.stripes(parity), | |
516 | "tag": k, |
|
480 | "tag": k, | |
517 | "tagmanifest": hex(cl.read(n)[0]), |
|
|||
518 | "date": cl.read(n)[2], |
|
481 | "date": cl.read(n)[2], | |
519 | "node": hex(n)} |
|
482 | "node": hex(n)} | |
520 | parity += 1 |
|
483 | parity += 1 | |
521 |
|
484 | |||
522 | yield self.t("tags", |
|
485 | yield self.t("tags", | |
523 |
|
|
486 | node=hex(self.repo.changelog.tip()), | |
524 | entries=lambda **x: entries(False, **x), |
|
487 | entries=lambda **x: entries(False, **x), | |
525 | entriesnotip=lambda **x: entries(True, **x)) |
|
488 | entriesnotip=lambda **x: entries(True, **x)) | |
526 |
|
489 | |||
527 | def summary(self): |
|
490 | def summary(self): | |
528 | cl = self.repo.changelog |
|
491 | cl = self.repo.changelog | |
529 | mf = cl.read(cl.tip())[0] |
|
|||
530 |
|
492 | |||
531 | i = self.repo.tagslist() |
|
493 | i = self.repo.tagslist() | |
532 | i.reverse() |
|
494 | i.reverse() | |
@@ -550,8 +512,7 b' class hgweb(object):' | |||||
550 | parity = self.stripes(parity), |
|
512 | parity = self.stripes(parity), | |
551 | tag = k, |
|
513 | tag = k, | |
552 | node = hex(n), |
|
514 | node = hex(n), | |
553 |
date = t |
|
515 | date = t) | |
554 | tagmanifest = hex(m)) |
|
|||
555 | parity += 1 |
|
516 | parity += 1 | |
556 |
|
517 | |||
557 | def changelist(**map): |
|
518 | def changelist(**map): | |
@@ -568,7 +529,6 b' class hgweb(object):' | |||||
568 | 'shortlogentry', |
|
529 | 'shortlogentry', | |
569 | parity = parity, |
|
530 | parity = parity, | |
570 | author = changes[1], |
|
531 | author = changes[1], | |
571 | manifest = hex(changes[0]), |
|
|||
572 | desc = changes[4], |
|
532 | desc = changes[4], | |
573 | date = t, |
|
533 | date = t, | |
574 | rev = i, |
|
534 | rev = i, | |
@@ -577,8 +537,6 b' class hgweb(object):' | |||||
577 |
|
537 | |||
578 | yield l |
|
538 | yield l | |
579 |
|
539 | |||
580 | cl = self.repo.changelog |
|
|||
581 | mf = cl.read(cl.tip())[0] |
|
|||
582 | count = cl.count() |
|
540 | count = cl.count() | |
583 | start = max(0, count - self.maxchanges) |
|
541 | start = max(0, count - self.maxchanges) | |
584 | end = min(count, start + self.maxchanges) |
|
542 | end = min(count, start + self.maxchanges) | |
@@ -589,29 +547,26 b' class hgweb(object):' | |||||
589 | self.repo.ui.config("web", "contact") or # deprecated |
|
547 | self.repo.ui.config("web", "contact") or # deprecated | |
590 | self.repo.ui.config("web", "author", "unknown")), # also |
|
548 | self.repo.ui.config("web", "author", "unknown")), # also | |
591 | lastchange = (0, 0), # FIXME |
|
549 | lastchange = (0, 0), # FIXME | |
592 | manifest = hex(mf), |
|
|||
593 | tags = tagentries, |
|
550 | tags = tagentries, | |
594 | shortlog = changelist, |
|
551 | shortlog = changelist, | |
|
552 | node = hex(self.repo.changelog.tip()), | |||
595 | archives=self.archivelist("tip")) |
|
553 | archives=self.archivelist("tip")) | |
596 |
|
554 | |||
597 | def filediff(self, file, changeset): |
|
555 | def filediff(self, file, changeset): | |
598 |
c |
|
556 | ctx = self.repo.changectx(changeset) | |
599 | n = self.repo.lookup(changeset) |
|
557 | n = ctx.node() | |
600 | changeset = hex(n) |
|
558 | parents = ctx.parents() | |
601 |
p1 = |
|
559 | p1 = parents[0].node() | |
602 | cs = cl.read(n) |
|
|||
603 | mf = self.repo.manifest.read(cs[0]) |
|
|||
604 |
|
560 | |||
605 | def diff(**map): |
|
561 | def diff(**map): | |
606 | yield self.diff(p1, n, [file]) |
|
562 | yield self.diff(p1, n, [file]) | |
607 |
|
563 | |||
608 | yield self.t("filediff", |
|
564 | yield self.t("filediff", | |
609 | file=file, |
|
565 | file=file, | |
610 |
|
|
566 | node=hex(n), | |
611 |
|
|
567 | rev=ctx.rev(), | |
612 |
|
|
568 | parent=self.siblings(parents), | |
613 |
|
|
569 | child=self.siblings(ctx.children()), | |
614 | child=self.siblings(cl.children(n), cl.rev), |
|
|||
615 | diff=diff) |
|
570 | diff=diff) | |
616 |
|
571 | |||
617 | archive_specs = { |
|
572 | archive_specs = { | |
@@ -693,6 +648,25 b' class hgweb(object):' | |||||
693 | form[name] = value |
|
648 | form[name] = value | |
694 | del form[k] |
|
649 | del form[k] | |
695 |
|
650 | |||
|
651 | if form.has_key('manifest'): | |||
|
652 | changeid = req.form['manifest'][0] | |||
|
653 | try: | |||
|
654 | req.changectx = self.repo.changectx(changeid) | |||
|
655 | except hg.RepoError: | |||
|
656 | man = self.repo.manifest | |||
|
657 | mn = man.lookup(changeid) | |||
|
658 | req.changectx = self.repo.changectx(man.linkrev(mn)) | |||
|
659 | ||||
|
660 | if form.has_key('filenode'): | |||
|
661 | changeid = req.form['filenode'][0] | |||
|
662 | path = self.cleanpath(req.form['file'][0]) | |||
|
663 | try: | |||
|
664 | req.changectx = self.repo.changectx(changeid) | |||
|
665 | req.filectx = req.changectx.filectx(path) | |||
|
666 | except hg.RepoError: | |||
|
667 | req.filectx = self.repo.filectx(path, fileid=changeid) | |||
|
668 | req.changectx = req.filectx.changectx() | |||
|
669 | ||||
696 | self.refresh() |
|
670 | self.refresh() | |
697 |
|
671 | |||
698 | expand_form(req.form) |
|
672 | expand_form(req.form) | |
@@ -771,7 +745,7 b' class hgweb(object):' | |||||
771 | req.write(self.changeset(req.form['node'][0])) |
|
745 | req.write(self.changeset(req.form['node'][0])) | |
772 |
|
746 | |||
773 | def do_manifest(self, req): |
|
747 | def do_manifest(self, req): | |
774 |
req.write(self.manifest(req. |
|
748 | req.write(self.manifest(req.changectx, | |
775 | self.cleanpath(req.form['path'][0]))) |
|
749 | self.cleanpath(req.form['path'][0]))) | |
776 |
|
750 | |||
777 | def do_tags(self, req): |
|
751 | def do_tags(self, req): | |
@@ -785,16 +759,13 b' class hgweb(object):' | |||||
785 | req.form['node'][0])) |
|
759 | req.form['node'][0])) | |
786 |
|
760 | |||
787 | def do_file(self, req): |
|
761 | def do_file(self, req): | |
788 |
req.write(self.filerevision( |
|
762 | req.write(self.filerevision(req.filectx)) | |
789 | req.form['filenode'][0])) |
|
|||
790 |
|
763 | |||
791 | def do_annotate(self, req): |
|
764 | def do_annotate(self, req): | |
792 |
req.write(self.fileannotate( |
|
765 | req.write(self.fileannotate(req.filectx)) | |
793 | req.form['filenode'][0])) |
|
|||
794 |
|
766 | |||
795 | def do_filelog(self, req): |
|
767 | def do_filelog(self, req): | |
796 |
req.write(self.filelog( |
|
768 | req.write(self.filelog(req.filectx)) | |
797 | req.form['filenode'][0])) |
|
|||
798 |
|
769 | |||
799 | def do_heads(self, req): |
|
770 | def do_heads(self, req): | |
800 | resp = " ".join(map(hex, self.repo.heads())) + "\n" |
|
771 | resp = " ".join(map(hex, self.repo.heads())) + "\n" |
@@ -20,7 +20,7 b'' | |||||
20 | </div> |
|
20 | </div> | |
21 |
|
21 | |||
22 | <div class="page_nav"> |
|
22 | <div class="page_nav"> | |
23 |
<a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;rev=#rev#;style=gitweb">shortlog</a> | changelog | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="? |
|
23 | <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;rev=#rev#;style=gitweb">shortlog</a> | changelog | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?mf=#node|short#;path=/;style=gitweb">manifest</a>#archives%archiveentry#<br/> | |
24 | <br/> |
|
24 | <br/> | |
25 | #changenav%naventry#<br/> |
|
25 | #changenav%naventry#<br/> | |
26 | </div> |
|
26 | </div> |
@@ -8,7 +8,7 b'' | |||||
8 | <div class="buttons"> |
|
8 | <div class="buttons"> | |
9 | <a href="?sl=#rev#">shortlog</a> |
|
9 | <a href="?sl=#rev#">shortlog</a> | |
10 | <a href="?cmd=tags">tags</a> |
|
10 | <a href="?cmd=tags">tags</a> | |
11 |
<a href="?mf=# |
|
11 | <a href="?mf=#node|short#;path=/">manifest</a> | |
12 | #archives%archiveentry# |
|
12 | #archives%archiveentry# | |
13 | <a type="application/rss+xml" href="?style=rss">rss</a> |
|
13 | <a type="application/rss+xml" href="?style=rss">rss</a> | |
14 | </div> |
|
14 | </div> |
@@ -19,7 +19,7 b'' | |||||
19 | <td class="date">#date|date#</td> |
|
19 | <td class="date">#date|date#</td> | |
20 | </tr> |
|
20 | </tr> | |
21 | <tr> |
|
21 | <tr> | |
22 |
<th class="files"><a href="?mf=# |
|
22 | <th class="files"><a href="?mf=#node|short#;path=/">files</a>:</th> | |
23 | <td class="files">#files#</td> |
|
23 | <td class="files">#files#</td> | |
24 | </tr> |
|
24 | </tr> | |
25 | </table> |
|
25 | </table> |
@@ -10,7 +10,7 b'' | |||||
10 | </div> |
|
10 | </div> | |
11 |
|
11 | |||
12 | <div class="page_nav"> |
|
12 | <div class="page_nav"> | |
13 |
<a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;rev=#rev#;style=gitweb">shortlog</a> | <a href="?cmd=changelog;rev=#rev#;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="? |
|
13 | <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;rev=#rev#;style=gitweb">shortlog</a> | <a href="?cmd=changelog;rev=#rev#;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?mf=#node|short#;path=/;style=gitweb">manifest</a> | changeset | <a href="?cmd=changeset;node=#node#;style=raw">raw</a> #archives%archiveentry#<br/> | |
14 | </div> |
|
14 | </div> | |
15 |
|
15 | |||
16 | <div> |
|
16 | <div> | |
@@ -21,7 +21,7 b'' | |||||
21 | <tr><td>author</td><td>#author|obfuscate#</td></tr> |
|
21 | <tr><td>author</td><td>#author|obfuscate#</td></tr> | |
22 | <tr><td></td><td>#date|date# (#date|age# ago)</td></tr> |
|
22 | <tr><td></td><td>#date|date# (#date|age# ago)</td></tr> | |
23 | <tr><td>changeset</td><td style="font-family:monospace">#node|short#</td></tr> |
|
23 | <tr><td>changeset</td><td style="font-family:monospace">#node|short#</td></tr> | |
24 |
<tr><td>manifest</td><td style="font-family:monospace"><a class="list" href="? |
|
24 | <tr><td>manifest</td><td style="font-family:monospace"><a class="list" href="?mf=#node|short#;path=/;style=gitweb">#node|short#</a></td></tr> | |
25 | #parent%changesetparent# |
|
25 | #parent%changesetparent# | |
26 | #child%changesetchild# |
|
26 | #child%changesetchild# | |
27 | #changesettag# |
|
27 | #changesettag# |
@@ -7,7 +7,7 b'' | |||||
7 | <a href="?cl=#rev#">changelog</a> |
|
7 | <a href="?cl=#rev#">changelog</a> | |
8 | <a href="?sl=#rev#">shortlog</a> |
|
8 | <a href="?sl=#rev#">shortlog</a> | |
9 | <a href="?cmd=tags">tags</a> |
|
9 | <a href="?cmd=tags">tags</a> | |
10 |
<a href="?mf=# |
|
10 | <a href="?mf=#node|short#;path=/">manifest</a> | |
11 | <a href="?cs=#node|short#;style=raw">raw</a> |
|
11 | <a href="?cs=#node|short#;style=raw">raw</a> | |
12 | #archives%archiveentry# |
|
12 | #archives%archiveentry# | |
13 | </div> |
|
13 | </div> |
@@ -10,7 +10,7 b'' | |||||
10 | </div> |
|
10 | </div> | |
11 |
|
11 | |||
12 | <div class="page_nav"> |
|
12 | <div class="page_nav"> | |
13 |
<a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="? |
|
13 | <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?mf=#node|short#;path=/;style=gitweb">manifest</a><br/> | |
14 | </div> |
|
14 | </div> | |
15 |
|
15 | |||
16 | <div> |
|
16 | <div> |
@@ -10,7 +10,7 b'' | |||||
10 | </div> |
|
10 | </div> | |
11 |
|
11 | |||
12 | <div class="page_nav"> |
|
12 | <div class="page_nav"> | |
13 |
<a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="? |
|
13 | <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?mf=#node|short#;path=#path|urlescape#;style=gitweb">manifest</a> | <a href="?cmd=changeset;node=#node#;style=gitweb">changeset</a> | <a href="?cmd=file;file=#file|urlescape#;filenode=#node|short#;style=gitweb">file</a> | <a href="?cmd=filelog;file=#file|urlescape#;filenode=#node|short#;style=gitweb">revisions</a> | annotate | <a href="?cmd=annotate;file=#file|urlescape#;filenode=#node|short#;style=raw">raw</a><br/> | |
14 | </div> |
|
14 | </div> | |
15 |
|
15 | |||
16 | <div class="title">#file|escape#</div> |
|
16 | <div class="title">#file|escape#</div> | |
@@ -24,7 +24,7 b'' | |||||
24 | #child%fileannotatechild# |
|
24 | #child%fileannotatechild# | |
25 | <tr> |
|
25 | <tr> | |
26 | <td class="metatag">manifest:</td> |
|
26 | <td class="metatag">manifest:</td> | |
27 |
<td><a href="?mf=# |
|
27 | <td><a href="?mf=#node|short#;path=/;style=gitweb">#node|short#</a></td></tr> | |
28 | <tr> |
|
28 | <tr> | |
29 | <td class="metatag">author:</td> |
|
29 | <td class="metatag">author:</td> | |
30 | <td>#author|obfuscate#</td></tr> |
|
30 | <td>#author|obfuscate#</td></tr> |
@@ -8,10 +8,10 b'' | |||||
8 | <a href="?sl=#rev#">shortlog</a> |
|
8 | <a href="?sl=#rev#">shortlog</a> | |
9 | <a href="?tags=">tags</a> |
|
9 | <a href="?tags=">tags</a> | |
10 | <a href="?cs=#node|short#">changeset</a> |
|
10 | <a href="?cs=#node|short#">changeset</a> | |
11 |
<a href="?mf=# |
|
11 | <a href="?mf=#node|short#;path=#path|urlescape#">manifest</a> | |
12 |
<a href="?f=# |
|
12 | <a href="?f=#node|short#;file=#file|urlescape#">file</a> | |
13 |
<a href="?fl=# |
|
13 | <a href="?fl=#node|short#;file=#file|urlescape#">revisions</a> | |
14 |
<a href="?fa=# |
|
14 | <a href="?fa=#node|short#;file=#file|urlescape#;style=raw">raw</a> | |
15 | </div> |
|
15 | </div> | |
16 |
|
16 | |||
17 | <h2>Annotate #file|escape#</h2> |
|
17 | <h2>Annotate #file|escape#</h2> |
@@ -8,9 +8,9 b'' | |||||
8 | <a href="?sl=#rev#">shortlog</a> |
|
8 | <a href="?sl=#rev#">shortlog</a> | |
9 | <a href="?tags=">tags</a> |
|
9 | <a href="?tags=">tags</a> | |
10 | <a href="?cs=#node|short#">changeset</a> |
|
10 | <a href="?cs=#node|short#">changeset</a> | |
11 |
<a href="?f=# |
|
11 | <a href="?f=#node|short#;file=#file|urlescape#">file</a> | |
12 |
<a href="?fl=# |
|
12 | <a href="?fl=#node|short#;file=#file|urlescape#">revisions</a> | |
13 |
<a href="?fa=# |
|
13 | <a href="?fa=#node|short#;file=#file|urlescape#">annotate</a> | |
14 | <a href="?fd=#node|short#;file=#file|urlescape#;style=raw">raw</a> |
|
14 | <a href="?fd=#node|short#;file=#file|urlescape#;style=raw">raw</a> | |
15 | </div> |
|
15 | </div> | |
16 |
|
16 |
@@ -10,7 +10,7 b'' | |||||
10 | </div> |
|
10 | </div> | |
11 |
|
11 | |||
12 | <div class="page_nav"> |
|
12 | <div class="page_nav"> | |
13 |
<a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=file;file=#file|urlescape#;filenode=# |
|
13 | <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=file;file=#file|urlescape#;filenode=#node|short#;style=gitweb">file</a> | revisions | <a href="?cmd=annotate;file=#file|urlescape#;filenode=#node|short#;style=gitweb">annotate</a> | <a href="?fl=#node|short#;file=#file|urlescape#;style=rss">rss</a><br/> | |
14 | </div> |
|
14 | </div> | |
15 |
|
15 | |||
16 | <div class="title" >#file|urlescape#</div> |
|
16 | <div class="title" >#file|urlescape#</div> |
@@ -10,8 +10,8 b'' | |||||
10 | <a href="?cl=tip">changelog</a> |
|
10 | <a href="?cl=tip">changelog</a> | |
11 | <a href="?sl=tip">shortlog</a> |
|
11 | <a href="?sl=tip">shortlog</a> | |
12 | <a href="?tags=">tags</a> |
|
12 | <a href="?tags=">tags</a> | |
13 |
<a href="?f=# |
|
13 | <a href="?f=#node|short#;file=#file|urlescape#">file</a> | |
14 |
<a href="?fa=# |
|
14 | <a href="?fa=#node|short#;file=#file|urlescape#">annotate</a> | |
15 | <a type="application/rss+xml" href="?fl=0;file=#file|urlescape#;style=rss">rss</a> |
|
15 | <a type="application/rss+xml" href="?fl=0;file=#file|urlescape#;style=rss">rss</a> | |
16 | </div> |
|
16 | </div> | |
17 |
|
17 |
@@ -1,6 +1,6 b'' | |||||
1 | <item> |
|
1 | <item> | |
2 | <title>#desc|strip|firstline|strip|escape#</title> |
|
2 | <title>#desc|strip|firstline|strip|escape#</title> | |
3 |
<link>#url#?f=# |
|
3 | <link>#url#?f=#node|short#;file=#file|urlescape#</link> | |
4 | <description><![CDATA[#desc|strip|escape|addbreaks#]]></description> |
|
4 | <description><![CDATA[#desc|strip|escape|addbreaks#]]></description> | |
5 | <author>#author|obfuscate#</author> |
|
5 | <author>#author|obfuscate#</author> | |
6 | <pubDate>#date|rfc822date#</pubDate>> |
|
6 | <pubDate>#date|rfc822date#</pubDate>> |
@@ -6,9 +6,9 b'' | |||||
6 | <tr> |
|
6 | <tr> | |
7 | <th class="revision">revision #filerev#:</td> |
|
7 | <th class="revision">revision #filerev#:</td> | |
8 | <td class="node"> |
|
8 | <td class="node"> | |
9 |
<a href="?f=# |
|
9 | <a href="?f=#node|short#;file=#file|urlescape#">#node|short#</a> | |
10 | <a href="?fd=#node|short#;file=#file|urlescape#">(diff)</a> |
|
10 | <a href="?fd=#node|short#;file=#file|urlescape#">(diff)</a> | |
11 |
<a href="?fa=# |
|
11 | <a href="?fa=#node|short#;file=#file|urlescape#">(annotate)</a> | |
12 | </td> |
|
12 | </td> | |
13 | </tr> |
|
13 | </tr> | |
14 | #rename%filelogrename# |
|
14 | #rename%filelogrename# |
@@ -10,7 +10,7 b'' | |||||
10 | </div> |
|
10 | </div> | |
11 |
|
11 | |||
12 | <div class="page_nav"> |
|
12 | <div class="page_nav"> | |
13 |
<a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?mf=# |
|
13 | <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?mf=#node|short#;path=#path|urlescape#;style=gitweb">manifest</a> | <a href="?cmd=changeset;node=#node#;style=gitweb">changeset</a> | file | <a href="?cmd=filelog;file=#file|urlescape#;filenode=#node|short#;style=gitweb">revisions</a> | <a href="?cmd=annotate;file=#file|urlescape#;filenode=#node|short#;style=gitweb">annotate</a> | <a href="?cmd=file;file=#file|urlescape#;filenode=#node#;style=raw">raw</a><br/> | |
14 | </div> |
|
14 | </div> | |
15 |
|
15 | |||
16 | <div class="title">#file|escape#</div> |
|
16 | <div class="title">#file|escape#</div> | |
@@ -24,7 +24,7 b'' | |||||
24 | #child%fileannotatechild# |
|
24 | #child%fileannotatechild# | |
25 | <tr> |
|
25 | <tr> | |
26 | <td class="metatag">manifest:</td> |
|
26 | <td class="metatag">manifest:</td> | |
27 |
<td><a href="?mf=# |
|
27 | <td><a href="?mf=#node|short#;path=/;style=gitweb">#node|short#</a></td></tr> | |
28 | <tr> |
|
28 | <tr> | |
29 | <td class="metatag">author:</td> |
|
29 | <td class="metatag">author:</td> | |
30 | <td>#author|obfuscate#</td></tr> |
|
30 | <td>#author|obfuscate#</td></tr> |
@@ -8,10 +8,10 b'' | |||||
8 | <a href="?sl=#rev#">shortlog</a> |
|
8 | <a href="?sl=#rev#">shortlog</a> | |
9 | <a href="?tags=">tags</a> |
|
9 | <a href="?tags=">tags</a> | |
10 | <a href="?cs=#node|short#">changeset</a> |
|
10 | <a href="?cs=#node|short#">changeset</a> | |
11 |
<a href="?mf=# |
|
11 | <a href="?mf=#node|short#;path=#path|urlescape#">manifest</a> | |
12 |
<a href="?fl=# |
|
12 | <a href="?fl=#node|short#;file=#file|urlescape#">revisions</a> | |
13 |
<a href="?fa=# |
|
13 | <a href="?fa=#node|short#;file=#file|urlescape#">annotate</a> | |
14 |
<a href="?f=# |
|
14 | <a href="?f=#node|short#;file=#file|urlescape#;style=raw">raw</a> | |
15 | </div> |
|
15 | </div> | |
16 |
|
16 | |||
17 | <h2>#file|escape#</h2> |
|
17 | <h2>#file|escape#</h2> |
@@ -18,7 +18,7 b'' | |||||
18 | <table cellspacing="0"> |
|
18 | <table cellspacing="0"> | |
19 | <tr class="light"> |
|
19 | <tr class="light"> | |
20 | <td style="font-family:monospace">drwxr-xr-x</td> |
|
20 | <td style="font-family:monospace">drwxr-xr-x</td> | |
21 |
<td><a href="? |
|
21 | <td><a href="?mf=#node|short#;path=#up|urlescape#;style=gitweb">[up]</a></td> | |
22 | <td class="link"> </td> |
|
22 | <td class="link"> </td> | |
23 | </tr> |
|
23 | </tr> | |
24 | #dentries%manifestdirentry# |
|
24 | #dentries%manifestdirentry# |
@@ -1,5 +1,5 b'' | |||||
1 | #header# |
|
1 | #header# | |
2 |
<title>#repo|escape#: manifest |
|
2 | <title>#repo|escape#: manifest for changeset #node|short#</title> | |
3 | </head> |
|
3 | </head> | |
4 | <body> |
|
4 | <body> | |
5 |
|
5 | |||
@@ -16,7 +16,7 b'' | |||||
16 | <table cellpadding="0" cellspacing="0"> |
|
16 | <table cellpadding="0" cellspacing="0"> | |
17 | <tr class="parity1"> |
|
17 | <tr class="parity1"> | |
18 | <td><tt>drwxr-xr-x</tt> |
|
18 | <td><tt>drwxr-xr-x</tt> | |
19 |
<td><a href="?mf=# |
|
19 | <td><a href="?mf=#node|short#;path=#up|urlescape#">[up]</a> | |
20 | #dentries%manifestdirentry# |
|
20 | #dentries%manifestdirentry# | |
21 | #fentries%manifestfileentry# |
|
21 | #fentries%manifestfileentry# | |
22 | </table> |
|
22 | </table> |
@@ -8,21 +8,21 b' shortlogentry = shortlogentry.tmpl' | |||||
8 | naventry = '<a href="?cl=#rev#">#label|escape#</a> ' |
|
8 | naventry = '<a href="?cl=#rev#">#label|escape#</a> ' | |
9 | navshortentry = '<a href="?sl=#rev#">#label|escape#</a> ' |
|
9 | navshortentry = '<a href="?sl=#rev#">#label|escape#</a> ' | |
10 | filedifflink = '<a href="?fd=#node|short#;file=#file|urlescape#">#file|escape#</a> ' |
|
10 | filedifflink = '<a href="?fd=#node|short#;file=#file|urlescape#">#file|escape#</a> ' | |
11 |
filenodelink = '<a href="?f=# |
|
11 | filenodelink = '<a href="?f=#node|short#;file=#file|urlescape#">#file|escape#</a> ' | |
12 | fileellipses = '...' |
|
12 | fileellipses = '...' | |
13 | changelogentry = changelogentry.tmpl |
|
13 | changelogentry = changelogentry.tmpl | |
14 | searchentry = changelogentry.tmpl |
|
14 | searchentry = changelogentry.tmpl | |
15 | changeset = changeset.tmpl |
|
15 | changeset = changeset.tmpl | |
16 | manifest = manifest.tmpl |
|
16 | manifest = manifest.tmpl | |
17 |
manifestdirentry = '<tr class="parity#parity#"><td><tt>drwxr-xr-x</tt> <td><a href="? |
|
17 | manifestdirentry = '<tr class="parity#parity#"><td><tt>drwxr-xr-x</tt> <td><a href="?mf=#node|short#;path=#path|urlescape#">#basename|escape#/</a>' | |
18 |
manifestfileentry = '<tr class="parity#parity#"><td><tt>#permissions|permissions#</tt> <td><a href="?f=# |
|
18 | manifestfileentry = '<tr class="parity#parity#"><td><tt>#permissions|permissions#</tt> <td><a href="?f=#node|short#;file=#file|urlescape#">#basename|escape#</a>' | |
19 | filerevision = filerevision.tmpl |
|
19 | filerevision = filerevision.tmpl | |
20 | fileannotate = fileannotate.tmpl |
|
20 | fileannotate = fileannotate.tmpl | |
21 | filediff = filediff.tmpl |
|
21 | filediff = filediff.tmpl | |
22 | filelog = filelog.tmpl |
|
22 | filelog = filelog.tmpl | |
23 | fileline = '<div class="parity#parity#"><span class="lineno">#linenumber#</span>#line|escape#</div>' |
|
23 | fileline = '<div class="parity#parity#"><span class="lineno">#linenumber#</span>#line|escape#</div>' | |
24 | filelogentry = filelogentry.tmpl |
|
24 | filelogentry = filelogentry.tmpl | |
25 |
annotateline = '<tr class="parity#parity#"><td class="annotate"><a href="?fa=# |
|
25 | annotateline = '<tr class="parity#parity#"><td class="annotate"><a href="?fa=#node|short#;file=#file|urlescape#">#author|obfuscate#@#rev#</a></td><td><pre>#line|escape#</pre></td></tr>' | |
26 | difflineplus = '<span class="plusline">#line|escape#</span>' |
|
26 | difflineplus = '<span class="plusline">#line|escape#</span>' | |
27 | difflineminus = '<span class="minusline">#line|escape#</span>' |
|
27 | difflineminus = '<span class="minusline">#line|escape#</span>' | |
28 | difflineat = '<span class="atline">#line|escape#</span>' |
|
28 | difflineat = '<span class="atline">#line|escape#</span>' |
@@ -8,19 +8,19 b' error = error-gitweb.tmpl' | |||||
8 | naventry = '<a href="?cmd=changelog;rev=#rev#;style=gitweb">#label|escape#</a> ' |
|
8 | naventry = '<a href="?cmd=changelog;rev=#rev#;style=gitweb">#label|escape#</a> ' | |
9 | navshortentry = '<a href="?cmd=shortlog;rev=#rev#;style=gitweb">#label|escape#</a> ' |
|
9 | navshortentry = '<a href="?cmd=shortlog;rev=#rev#;style=gitweb">#label|escape#</a> ' | |
10 | filedifflink = '<a href="?cmd=filediff;node=#node#;file=#file|urlescape#;style=gitweb">#file|escape#</a> ' |
|
10 | filedifflink = '<a href="?cmd=filediff;node=#node#;file=#file|urlescape#;style=gitweb">#file|escape#</a> ' | |
11 |
filenodelink = '<tr class="parity#parity#"><td><a class="list" href="">#file|escape#</a></td><td></td><td class="link"><a href="? |
|
11 | filenodelink = '<tr class="parity#parity#"><td><a class="list" href="">#file|escape#</a></td><td></td><td class="link"><a href="?f=#node|short#;file=#file|urlescape#;style=gitweb">file</a> | <a href="?fa=#node|short#;file=#file|urlescape#;style=gitweb">annotate</a> | <!-- FIXME: <a href="?fd=#node|short#;file=#file|urlescape#;style=gitweb">diff</a> | --> <a href="?cmd=filelog;filenode=#node|short#;file=#file|urlescape#;style=gitweb">revisions</a></td></tr>' | |
12 | fileellipses = '...' |
|
12 | fileellipses = '...' | |
13 | changelogentry = changelogentry-gitweb.tmpl |
|
13 | changelogentry = changelogentry-gitweb.tmpl | |
14 | searchentry = changelogentry-gitweb.tmpl |
|
14 | searchentry = changelogentry-gitweb.tmpl | |
15 | changeset = changeset-gitweb.tmpl |
|
15 | changeset = changeset-gitweb.tmpl | |
16 | manifest = manifest-gitweb.tmpl |
|
16 | manifest = manifest-gitweb.tmpl | |
17 |
manifestdirentry = '<tr class="parity#parity#"><td style="font-family:monospace">drwxr-xr-x</td><td><a href="?mf=# |
|
17 | manifestdirentry = '<tr class="parity#parity#"><td style="font-family:monospace">drwxr-xr-x</td><td><a href="?mf=#node|short#;path=#path|urlescape#;style=gitweb">#basename|escape#/</a></td><td class="link"><a href="?mf=#node|short#;path=#path|urlescape#;style=gitweb">manifest</a></td></tr>' | |
18 |
manifestfileentry = '<tr class="parity#parity#"><td style="font-family:monospace">#permissions|permissions#</td><td class="list"><a class="list" href="?f=# |
|
18 | manifestfileentry = '<tr class="parity#parity#"><td style="font-family:monospace">#permissions|permissions#</td><td class="list"><a class="list" href="?f=#node|short#;file=#file|urlescape#;style=gitweb">#basename|escape#</a></td><td class="link"><a href="?f=#node|short#;file=#file|urlescape#;style=gitweb">file</a> | <a href="?fl=#node|short#;file=#file|urlescape#;style=gitweb">revisions</a> | <a href="?fa=#node|short#;file=#file|urlescape#;style=gitweb">annotate</a></td></tr>' | |
19 | filerevision = filerevision-gitweb.tmpl |
|
19 | filerevision = filerevision-gitweb.tmpl | |
20 | fileannotate = fileannotate-gitweb.tmpl |
|
20 | fileannotate = fileannotate-gitweb.tmpl | |
21 | filelog = filelog-gitweb.tmpl |
|
21 | filelog = filelog-gitweb.tmpl | |
22 | fileline = '<div style="font-family:monospace" class="parity#parity#"><pre><span class="linenr"> #linenumber#</span> #line|escape#</pre></div>' |
|
22 | fileline = '<div style="font-family:monospace" class="parity#parity#"><pre><span class="linenr"> #linenumber#</span> #line|escape#</pre></div>' | |
23 |
annotateline = '<tr style="font-family:monospace" class="parity#parity#"><td class="linenr" style="text-align: right;"><a href="?fa=# |
|
23 | annotateline = '<tr style="font-family:monospace" class="parity#parity#"><td class="linenr" style="text-align: right;"><a href="?fa=#node|short#;file=#file|urlescape#;style=gitweb">#author|obfuscate#@#rev#</a></td><td><pre>#line|escape#</pre></td></tr>' | |
24 | difflineplus = '<div style="color:#008800;">#line|escape#</div>' |
|
24 | difflineplus = '<div style="color:#008800;">#line|escape#</div>' | |
25 | difflineminus = '<div style="color:#cc0000;">#line|escape#</div>' |
|
25 | difflineminus = '<div style="color:#cc0000;">#line|escape#</div>' | |
26 | difflineat = '<div style="color:#990099;">#line|escape#</div>' |
|
26 | difflineat = '<div style="color:#990099;">#line|escape#</div>' | |
@@ -36,7 +36,7 b" changesetchild = '<tr><td>child</td><td " | |||||
36 | filerevchild = '<tr><td class="metatag">child:</td><td><a href="?cmd=file;file=#file|urlescape#;filenode=#node#;style=gitweb">#node|short#</a></td></tr>' |
|
36 | filerevchild = '<tr><td class="metatag">child:</td><td><a href="?cmd=file;file=#file|urlescape#;filenode=#node#;style=gitweb">#node|short#</a></td></tr>' | |
37 | fileannotatechild = '<tr><td class="metatag">child:</td><td><a href="?cmd=annotate;file=#file|urlescape#;filenode=#node#;style=gitweb">#node|short#</a></td></tr>' |
|
37 | fileannotatechild = '<tr><td class="metatag">child:</td><td><a href="?cmd=annotate;file=#file|urlescape#;filenode=#node#;style=gitweb">#node|short#</a></td></tr>' | |
38 | tags = tags-gitweb.tmpl |
|
38 | tags = tags-gitweb.tmpl | |
39 |
tagentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb"><b>#tag|escape#</b></a></td><td class="link"><a href="?cmd=changeset;node=#node|short#;style=gitweb">changeset</a> | <a href="?cmd=changelog;rev=#node|short#;style=gitweb">changelog</a> | <a href="?mf=# |
|
39 | tagentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb"><b>#tag|escape#</b></a></td><td class="link"><a href="?cmd=changeset;node=#node|short#;style=gitweb">changeset</a> | <a href="?cmd=changelog;rev=#node|short#;style=gitweb">changelog</a> | <a href="?mf=#node|short#;path=/;style=gitweb">manifest</a></td></tr>' | |
40 | diffblock = '<pre>#lines#</pre>' |
|
40 | diffblock = '<pre>#lines#</pre>' | |
41 | changelogtag = '<tr><th class="tag">tag:</th><td class="tag">#tag|escape#</td></tr>' |
|
41 | changelogtag = '<tr><th class="tag">tag:</th><td class="tag">#tag|escape#</td></tr>' | |
42 | changesettag = '<tr><td>tag</td><td>#tag|escape#</td></tr>' |
|
42 | changesettag = '<tr><td>tag</td><td>#tag|escape#</td></tr>' | |
@@ -45,6 +45,6 b' filelogparent = \'<tr><td align="right">p' | |||||
45 | filediffchild = '<tr><th class="child">child #rev#:</th><td class="child"><a href="?cmd=changeset;node=#node#;style=gitweb">#node|short#</a></td></tr>' |
|
45 | filediffchild = '<tr><th class="child">child #rev#:</th><td class="child"><a href="?cmd=changeset;node=#node#;style=gitweb">#node|short#</a></td></tr>' | |
46 | filelogchild = '<tr><td align="right">child #rev#: </td><td><a href="?cmd=file;file=#file|urlescape#;filenode=#node#;style=gitweb">#node|short#</a></td></tr>' |
|
46 | filelogchild = '<tr><td align="right">child #rev#: </td><td><a href="?cmd=file;file=#file|urlescape#;filenode=#node#;style=gitweb">#node|short#</a></td></tr>' | |
47 | shortlog = shortlog-gitweb.tmpl |
|
47 | shortlog = shortlog-gitweb.tmpl | |
48 |
shortlogentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><i>#author#</i></td><td><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb"><b>#desc|strip|firstline|escape#</b></a></td><td class="link"><a href="?cmd=changeset;node=#node|short#;style=gitweb">changeset</a> | <a href="?cmd=manifest;manifest=# |
|
48 | shortlogentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><i>#author#</i></td><td><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb"><b>#desc|strip|firstline|escape#</b></a></td><td class="link"><a href="?cmd=changeset;node=#node|short#;style=gitweb">changeset</a> | <a href="?cmd=manifest;manifest=#node|short#;path=/;style=gitweb">manifest</a></td></tr>' | |
49 |
filelogentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb"><b>#desc|strip|firstline|escape#</b></a></td><td class="link"><a href="?f=#node|short#;file=#file|urlescape#;style=gitweb">file</a> | <!-- FIXME: <a href="?fd=#node|short#;file=#file|urlescape#;style=gitweb">diff</a> | --> <a href="?fa=# |
|
49 | filelogentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><a class="list" href="?cmd=changeset;node=#node|short#;style=gitweb"><b>#desc|strip|firstline|escape#</b></a></td><td class="link"><a href="?f=#node|short#;file=#file|urlescape#;style=gitweb">file</a> | <!-- FIXME: <a href="?fd=#node|short#;file=#file|urlescape#;style=gitweb">diff</a> | --> <a href="?fa=#node|short#;file=#file|urlescape#;style=gitweb">annotate</a> #rename%filelogrename#</td></tr>' | |
50 | archiveentry = ' | <a href="?ca=#node|short#;type=#type|urlescape#">#type|escape#</a> ' |
|
50 | archiveentry = ' | <a href="?ca=#node|short#;type=#type|urlescape#">#type|escape#</a> ' |
@@ -1,6 +1,6 b'' | |||||
1 | #header# |
|
1 | #header# | |
2 | <div class="page_nav"> |
|
2 | <div class="page_nav"> | |
3 |
<a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="? |
|
3 | <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?mf=#node|short#;path=/;style=gitweb">manifest</a><br/> | |
4 | </div> |
|
4 | </div> | |
5 |
|
5 | |||
6 | <h2>searching for #query|escape#</h2> |
|
6 | <h2>searching for #query|escape#</h2> |
@@ -7,7 +7,7 b'' | |||||
7 | <a href="?cl=tip">changelog</a> |
|
7 | <a href="?cl=tip">changelog</a> | |
8 | <a href="?sl=tip">shortlog</a> |
|
8 | <a href="?sl=tip">shortlog</a> | |
9 | <a href="?tags=">tags</a> |
|
9 | <a href="?tags=">tags</a> | |
10 |
<a href="?mf=# |
|
10 | <a href="?mf=#node|short#;path=/">manifest</a> | |
11 | </div> |
|
11 | </div> | |
12 |
|
12 | |||
13 | <h2>searching for #query|escape#</h2> |
|
13 | <h2>searching for #query|escape#</h2> |
@@ -19,7 +19,7 b'' | |||||
19 | </form> |
|
19 | </form> | |
20 | </div> |
|
20 | </div> | |
21 | <div class="page_nav"> |
|
21 | <div class="page_nav"> | |
22 |
<a href="?cmd=summary;style=gitweb">summary</a> | shortlog | <a href="?cmd=changelog;rev=#rev#;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="? |
|
22 | <a href="?cmd=summary;style=gitweb">summary</a> | shortlog | <a href="?cmd=changelog;rev=#rev#;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?mf=#node|short#;path=/;style=gitweb">manifest</a>#archives%archiveentry#<br/> | |
23 | <br/> |
|
23 | <br/> | |
24 |
|
24 | |||
25 | #changenav%navshortentry#<br/> |
|
25 | #changenav%navshortentry#<br/> |
@@ -8,7 +8,7 b'' | |||||
8 | <div class="buttons"> |
|
8 | <div class="buttons"> | |
9 | <a href="?cl=#rev#">changelog</a> |
|
9 | <a href="?cl=#rev#">changelog</a> | |
10 | <a href="?cmd=tags">tags</a> |
|
10 | <a href="?cmd=tags">tags</a> | |
11 |
<a href="?mf=# |
|
11 | <a href="?mf=#node|short#;path=/">manifest</a> | |
12 | #archives%archiveentry# |
|
12 | #archives%archiveentry# | |
13 | <a type="application/rss+xml" href="?style=rss">rss</a> |
|
13 | <a type="application/rss+xml" href="?style=rss">rss</a> | |
14 | </div> |
|
14 | </div> |
@@ -9,7 +9,7 b'' | |||||
9 | <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / summary |
|
9 | <a href="http://www.selenic.com/mercurial/" title="Mercurial"><div style="float:right;">Mercurial</div></a><a href="?cmd=summary;style=gitweb">#repo|escape#</a> / summary | |
10 | </div> |
|
10 | </div> | |
11 | <div class="page_nav"> |
|
11 | <div class="page_nav"> | |
12 |
summary | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=m |
|
12 | summary | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | <a href="?cmd=tags;style=gitweb">tags</a> | <a href="?cmd=mf=#node|short#;path=/;style=gitweb">manifest</a>#archives%archiveentry# | |
13 | <br/> |
|
13 | <br/> | |
14 | </div> |
|
14 | </div> | |
15 |
|
15 |
@@ -10,7 +10,7 b'' | |||||
10 | </div> |
|
10 | </div> | |
11 |
|
11 | |||
12 | <div class="page_nav"> |
|
12 | <div class="page_nav"> | |
13 |
<a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | tags | <a href="?cmd=manifest;manifest=# |
|
13 | <a href="?cmd=summary;style=gitweb">summary</a> | <a href="?cmd=shortlog;style=gitweb">shortlog</a> | <a href="?cmd=changelog;style=gitweb">changelog</a> | tags | <a href="?cmd=manifest;manifest=#node|short#;path=/;style=gitweb">manifest</a> | |
14 | <br/> |
|
14 | <br/> | |
15 | </div> |
|
15 | </div> | |
16 |
|
16 |
@@ -8,7 +8,7 b'' | |||||
8 | <div class="buttons"> |
|
8 | <div class="buttons"> | |
9 | <a href="?cl=tip">changelog</a> |
|
9 | <a href="?cl=tip">changelog</a> | |
10 | <a href="?sl=tip">shortlog</a> |
|
10 | <a href="?sl=tip">shortlog</a> | |
11 |
<a href="?mf=# |
|
11 | <a href="?mf=#node|short#;path=/">manifest</a> | |
12 | <a type="application/rss+xml" href="?cmd=tags;style=rss">rss</a> |
|
12 | <a type="application/rss+xml" href="?cmd=tags;style=rss">rss</a> | |
13 | </div> |
|
13 | </div> | |
14 |
|
14 |
@@ -3,14 +3,11 b' rev a changeset.manifest revis' | |||||
3 | node a changeset node |
|
3 | node a changeset node | |
4 | changesets total number of changesets |
|
4 | changesets total number of changesets | |
5 | file a filename |
|
5 | file a filename | |
6 | filenode a file node |
|
|||
7 | filerev a file revision |
|
6 | filerev a file revision | |
8 | filerevs total number of file revisions |
|
7 | filerevs total number of file revisions | |
9 | up the directory of the relevant file |
|
8 | up the directory of the relevant file | |
10 | path a path in the manifest, starting with "/" |
|
9 | path a path in the manifest, starting with "/" | |
11 | basename a short pathname |
|
10 | basename a short pathname | |
12 | manifest a manifest node |
|
|||
13 | manifestrev a manifest revision |
|
|||
14 | date a date string |
|
11 | date a date string | |
15 | age age in hours, days, etc |
|
12 | age age in hours, days, etc | |
16 | line a line of text (escaped) |
|
13 | line a line of text (escaped) |
General Comments 0
You need to be logged in to leave comments.
Login now