mercurial/hgweb.py
changeset 1324 77cd8068dbf4
parent 1321 b47f96a178a3
child 1333 901c645c1943
equal deleted inserted replaced
1323:60200b3fc839 1324:77cd8068dbf4
    25         return t + "s"
    25         return t + "s"
    26     def fmt(t, c):
    26     def fmt(t, c):
    27         return "%d %s" % (c, plural(t, c))
    27         return "%d %s" % (c, plural(t, c))
    28 
    28 
    29     now = time.time()
    29     now = time.time()
    30     then = x[2][0]
    30     then = x[0]
    31     delta = max(1, int(now - then))
    31     delta = max(1, int(now - then))
    32 
    32 
    33     scales = [["second", 1],
    33     scales = [["second", 1],
    34               ["minute", 60],
    34               ["minute", 60],
    35               ["hour", 3600],
    35               ["hour", 3600],
   153                 return
   153                 return
   154 
   154 
   155 common_filters = {
   155 common_filters = {
   156     "escape": cgi.escape,
   156     "escape": cgi.escape,
   157     "age": age,
   157     "age": age,
   158     "date": lambda x: util.datestr(x[2]),
   158     "date": lambda x: util.datestr(x),
   159     "addbreaks": nl2br,
   159     "addbreaks": nl2br,
   160     "obfuscate": obfuscate,
   160     "obfuscate": obfuscate,
   161     "short": (lambda x: x[:12]),
   161     "short": (lambda x: x[:12]),
   162     "firstline": (lambda x: x.splitlines(1)[0]),
   162     "firstline": (lambda x: x.splitlines(1)[0]),
   163     "permissions": (lambda x: x and "-rwxr-xr-x" or "-rw-r--r--"),
   163     "permissions": (lambda x: x and "-rwxr-xr-x" or "-rw-r--r--"),
   164     "rfc822date": lambda x: util.datestr(x[2], "%a, %d %b %Y %H:%M:%S"),
   164     "rfc822date": lambda x: util.datestr(x, "%a, %d %b %Y %H:%M:%S"),
   165     }
   165     }
   166 
   166 
   167 class hgweb:
   167 class hgweb:
   168     def __init__(self, repo, name=None):
   168     def __init__(self, repo, name=None):
   169         if type(repo) == type(""):
   169         if type(repo) == type(""):
   182             self.repo = hg.repository(self.repo.ui, self.repo.root)
   182             self.repo = hg.repository(self.repo.ui, self.repo.root)
   183             self.maxchanges = int(self.repo.ui.config("web", "maxchanges", 10))
   183             self.maxchanges = int(self.repo.ui.config("web", "maxchanges", 10))
   184             self.maxfiles = int(self.repo.ui.config("web", "maxfiles", 10))
   184             self.maxfiles = int(self.repo.ui.config("web", "maxfiles", 10))
   185             self.allowpull = self.repo.ui.configbool("web", "allowpull", True)
   185             self.allowpull = self.repo.ui.configbool("web", "allowpull", True)
   186 
   186 
   187     def date(self, cs):
   187     def date(self, t):
   188         return util.datestr(cs[2])
   188         return util.datestr(t)
   189 
   189 
   190     def listfiles(self, files, mf):
   190     def listfiles(self, files, mf):
   191         for f in files[:self.maxfiles]:
   191         for f in files[:self.maxfiles]:
   192             yield self.t("filenodelink", node=hex(mf[f]), file=f)
   192             yield self.t("filenodelink", node=hex(mf[f]), file=f)
   193         if len(files) > self.maxfiles:
   193         if len(files) > self.maxfiles:
   309                              "parent": self.parents("changelogparent",
   309                              "parent": self.parents("changelogparent",
   310                                                     cl.parents(n), cl.rev),
   310                                                     cl.parents(n), cl.rev),
   311                              "changelogtag": self.showtag("changelogtag",n),
   311                              "changelogtag": self.showtag("changelogtag",n),
   312                              "manifest": hex(changes[0]),
   312                              "manifest": hex(changes[0]),
   313                              "desc": changes[4],
   313                              "desc": changes[4],
   314                              "date": changes,
   314                              "date": changes[2],
   315                              "files": self.listfilediffs(changes[3], n),
   315                              "files": self.listfilediffs(changes[3], n),
   316                              "rev": i,
   316                              "rev": i,
   317                              "node": hn})
   317                              "node": hn})
   318                 parity = 1 - parity
   318                 parity = 1 - parity
   319 
   319 
   370                              parent=self.parents("changelogparent",
   370                              parent=self.parents("changelogparent",
   371                                                  cl.parents(n), cl.rev),
   371                                                  cl.parents(n), cl.rev),
   372                              changelogtag=self.showtag("changelogtag",n),
   372                              changelogtag=self.showtag("changelogtag",n),
   373                              manifest=hex(changes[0]),
   373                              manifest=hex(changes[0]),
   374                              desc=changes[4],
   374                              desc=changes[4],
   375                              date=changes,
   375                              date=changes[2],
   376                              files=self.listfilediffs(changes[3], n),
   376                              files=self.listfilediffs(changes[3], n),
   377                              rev=i,
   377                              rev=i,
   378                              node=hn)
   378                              node=hn)
   379 
   379 
   380                 if count >= self.maxchanges:
   380                 if count >= self.maxchanges:
   416                                          cl.parents(n), cl.rev),
   416                                          cl.parents(n), cl.rev),
   417                      changesettag=self.showtag("changesettag",n),
   417                      changesettag=self.showtag("changesettag",n),
   418                      manifest=hex(changes[0]),
   418                      manifest=hex(changes[0]),
   419                      author=changes[1],
   419                      author=changes[1],
   420                      desc=changes[4],
   420                      desc=changes[4],
   421                      date=changes,
   421                      date=changes[2],
   422                      files=files,
   422                      files=files,
   423                      archives=archivelist())
   423                      archives=archivelist())
   424 
   424 
   425     def filelog(self, f, filenode):
   425     def filelog(self, f, filenode):
   426         cl = self.repo.changelog
   426         cl = self.repo.changelog
   441                              "filenode": hex(n),
   441                              "filenode": hex(n),
   442                              "filerev": i,
   442                              "filerev": i,
   443                              "file": f,
   443                              "file": f,
   444                              "node": hex(cn),
   444                              "node": hex(cn),
   445                              "author": cs[1],
   445                              "author": cs[1],
   446                              "date": cs,
   446                              "date": cs[2],
   447                              "parent": self.parents("filelogparent",
   447                              "parent": self.parents("filelogparent",
   448                                                     fl.parents(n),
   448                                                     fl.parents(n),
   449                                                     fl.rev, file=f),
   449                                                     fl.rev, file=f),
   450                              "desc": cs[4]})
   450                              "desc": cs[4]})
   451                 parity = 1 - parity
   451                 parity = 1 - parity
   478                      text=lines(),
   478                      text=lines(),
   479                      rev=changerev,
   479                      rev=changerev,
   480                      node=hex(cn),
   480                      node=hex(cn),
   481                      manifest=hex(mfn),
   481                      manifest=hex(mfn),
   482                      author=cs[1],
   482                      author=cs[1],
   483                      date=cs,
   483                      date=cs[2],
   484                      parent=self.parents("filerevparent",
   484                      parent=self.parents("filerevparent",
   485                                          fl.parents(n), fl.rev, file=f),
   485                                          fl.parents(n), fl.rev, file=f),
   486                      permissions=self.repo.manifest.readflags(mfn)[f])
   486                      permissions=self.repo.manifest.readflags(mfn)[f])
   487 
   487 
   488     def fileannotate(self, f, node):
   488     def fileannotate(self, f, node):
   530                      path=up(f),
   530                      path=up(f),
   531                      rev=changerev,
   531                      rev=changerev,
   532                      node=hex(cn),
   532                      node=hex(cn),
   533                      manifest=hex(mfn),
   533                      manifest=hex(mfn),
   534                      author=cs[1],
   534                      author=cs[1],
   535                      date=cs,
   535                      date=cs[2],
   536                      parent=self.parents("fileannotateparent",
   536                      parent=self.parents("fileannotateparent",
   537                                          fl.parents(n), fl.rev, file=f),
   537                                          fl.parents(n), fl.rev, file=f),
   538                      permissions=self.repo.manifest.readflags(mfn)[f])
   538                      permissions=self.repo.manifest.readflags(mfn)[f])
   539 
   539 
   540     def manifest(self, mnode, path):
   540     def manifest(self, mnode, path):