mercurial/hgweb/webcommands.py
changeset 31665 5e6d44511317
parent 31661 f36dc643ffdc
child 31667 e540846c67e0
equal deleted inserted replaced
31664:1cbeefa59343 31665:5e6d44511317
    26     staticfile,
    26     staticfile,
    27 )
    27 )
    28 
    28 
    29 from .. import (
    29 from .. import (
    30     archival,
    30     archival,
       
    31     context,
    31     encoding,
    32     encoding,
    32     error,
    33     error,
    33     graphmod,
    34     graphmod,
    34     revset,
    35     revset,
    35     revsetlang,
    36     revsetlang,
   966             revcount = max(revcount, 1)
   967             revcount = max(revcount, 1)
   967             tmpl.defaults['sessionvars']['revcount'] = revcount
   968             tmpl.defaults['sessionvars']['revcount'] = revcount
   968         except ValueError:
   969         except ValueError:
   969             pass
   970             pass
   970 
   971 
       
   972     lrange = webutil.linerange(req)
       
   973 
   971     lessvars = copy.copy(tmpl.defaults['sessionvars'])
   974     lessvars = copy.copy(tmpl.defaults['sessionvars'])
   972     lessvars['revcount'] = max(revcount / 2, 1)
   975     lessvars['revcount'] = max(revcount / 2, 1)
   973     morevars = copy.copy(tmpl.defaults['sessionvars'])
   976     morevars = copy.copy(tmpl.defaults['sessionvars'])
   974     morevars['revcount'] = revcount * 2
   977     morevars['revcount'] = revcount * 2
   975 
   978 
   994         ctx = fctx.changectx()
   997         ctx = fctx.changectx()
   995         basectx = ctx.p1()
   998         basectx = ctx.p1()
   996         path = fctx.path()
   999         path = fctx.path()
   997         return webutil.diffs(web, tmpl, ctx, basectx, [path], diffstyle)
  1000         return webutil.diffs(web, tmpl, ctx, basectx, [path], diffstyle)
   998 
  1001 
   999     for i in revs:
  1002     linerange = None
  1000         iterfctx = fctx.filectx(i)
  1003     if lrange is not None:
  1001         diffs = None
  1004         linerange = webutil.formatlinerange(*lrange)
  1002         if patch:
  1005         # deactivate numeric nav links when linerange is specified as this
  1003             diffs = diff(iterfctx)
  1006         # would required a dedicated "revnav" class
  1004         entries.append(dict(
  1007         nav = None
  1005             parity=next(parity),
  1008         ancestors = context.blockancestors(fctx, *lrange)
  1006             filerev=i,
  1009         for i, (c, lr) in enumerate(ancestors, 1):
  1007             file=f,
  1010             diffs = None
  1008             diff=diffs,
  1011             if patch:
  1009             rename=webutil.renamelink(iterfctx),
  1012                 diffs = diff(c)
  1010             **webutil.commonentry(repo, iterfctx)))
  1013             # follow renames accross filtered (not in range) revisions
  1011     entries.reverse()
  1014             path = c.path()
       
  1015             entries.append(dict(
       
  1016                 parity=next(parity),
       
  1017                 filerev=c.rev(),
       
  1018                 file=path,
       
  1019                 diff=diffs,
       
  1020                 linerange=webutil.formatlinerange(*lr),
       
  1021                 **webutil.commonentry(repo, c)))
       
  1022             if i == revcount:
       
  1023                 break
       
  1024         lessvars['linerange'] = webutil.formatlinerange(*lrange)
       
  1025         morevars['linerange'] = lessvars['linerange']
       
  1026     else:
       
  1027         for i in revs:
       
  1028             iterfctx = fctx.filectx(i)
       
  1029             diffs = None
       
  1030             if patch:
       
  1031                 diffs = diff(iterfctx)
       
  1032             entries.append(dict(
       
  1033                 parity=next(parity),
       
  1034                 filerev=i,
       
  1035                 file=f,
       
  1036                 diff=diffs,
       
  1037                 rename=webutil.renamelink(iterfctx),
       
  1038                 **webutil.commonentry(repo, iterfctx)))
       
  1039         entries.reverse()
       
  1040         revnav = webutil.filerevnav(web.repo, fctx.path())
       
  1041         nav = revnav.gen(end - 1, revcount, count)
  1012 
  1042 
  1013     latestentry = entries[:1]
  1043     latestentry = entries[:1]
  1014 
  1044 
  1015     revnav = webutil.filerevnav(web.repo, fctx.path())
       
  1016     nav = revnav.gen(end - 1, revcount, count)
       
  1017     return tmpl("filelog",
  1045     return tmpl("filelog",
  1018                 file=f,
  1046                 file=f,
  1019                 nav=nav,
  1047                 nav=nav,
  1020                 symrev=webutil.symrevorshortnode(req, fctx),
  1048                 symrev=webutil.symrevorshortnode(req, fctx),
  1021                 entries=entries,
  1049                 entries=entries,
  1022                 patch=patch,
  1050                 patch=patch,
  1023                 latestentry=latestentry,
  1051                 latestentry=latestentry,
       
  1052                 linerange=linerange,
  1024                 revcount=revcount,
  1053                 revcount=revcount,
  1025                 morevars=morevars,
  1054                 morevars=morevars,
  1026                 lessvars=lessvars,
  1055                 lessvars=lessvars,
  1027                 **webutil.commonentry(web.repo, fctx))
  1056                 **webutil.commonentry(web.repo, fctx))
  1028 
  1057