diff --git a/setup.py b/setup.py
index 9c626a8f35dbc94d7f47e6de24725b20cfa0de5b..0ad6aa5fddca7fc6f74acf0b505a72e7b92f3ee3 100755
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# Copyright (C) 2015-2020  The Software Heritage developers
+# Copyright (C) 2015-2023  The Software Heritage developers
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU General Public License version 3, or any later version
 # See top-level LICENSE file for more information
@@ -69,6 +69,7 @@ setup(
         lister.gitea=swh.lister.gitea:register
         lister.github=swh.lister.github:register
         lister.gitlab=swh.lister.gitlab:register
+        lister.gitweb=swh.lister.gitweb:register
         lister.gnu=swh.lister.gnu:register
         lister.golang=swh.lister.golang:register
         lister.gogs=swh.lister.gogs:register
diff --git a/swh/lister/gitweb/__init__.py b/swh/lister/gitweb/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..acb2af12bfd1d8b27b6c555afdc13d94e0c9232c
--- /dev/null
+++ b/swh/lister/gitweb/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (C) 2023 The Software Heritage developers
+# License: GNU General Public License version 3, or any later version
+# See top-level LICENSE file for more information
+
+
+def register():
+    from .lister import GitwebLister
+
+    return {
+        "lister": GitwebLister,
+        "task_modules": [f"{__name__}.tasks"],
+    }
diff --git a/swh/lister/gitweb/lister.py b/swh/lister/gitweb/lister.py
new file mode 100644
index 0000000000000000000000000000000000000000..57810a9e95bd63bbee63615cf3081490592f5e86
--- /dev/null
+++ b/swh/lister/gitweb/lister.py
@@ -0,0 +1,162 @@
+# Copyright (C) 2023 The Software Heritage developers
+# License: GNU General Public License version 3, or any later version
+# See top-level LICENSE file for more information
+
+import logging
+import re
+from typing import Any, Dict, Iterator, List, Optional
+from urllib.parse import urljoin, urlparse
+
+from bs4 import BeautifulSoup
+from requests.exceptions import HTTPError
+
+from swh.lister.pattern import CredentialsType, StatelessLister
+from swh.scheduler.interface import SchedulerInterface
+from swh.scheduler.model import ListedOrigin
+
+logger = logging.getLogger(__name__)
+
+Repositories = List[Dict[str, Any]]
+
+
+class GitwebLister(StatelessLister[Repositories]):
+    """Lister class for Gitweb repositories.
+
+    This lister will retrieve the list of published git repositories by
+    parsing the HTML page(s) of the index retrieved at `url`.
+
+    """
+
+    LISTER_NAME = "gitweb"
+
+    def __init__(
+        self,
+        scheduler: SchedulerInterface,
+        url: Optional[str] = None,
+        instance: Optional[str] = None,
+        credentials: Optional[CredentialsType] = None,
+        max_origins_per_page: Optional[int] = None,
+        max_pages: Optional[int] = None,
+        enable_origins: bool = True,
+    ):
+        """Lister class for Gitweb repositories.
+
+        Args:
+            url: (Optional) Root URL of the Gitweb instance, i.e. url of the index of
+                published git repositories on this instance. Defaults to
+                :file:`https://{instance}` if unset.
+            instance: Name of gitweb instance. Defaults to url's network location
+                if unset.
+
+        """
+        super().__init__(
+            scheduler=scheduler,
+            url=url,
+            instance=instance,
+            credentials=credentials,
+            max_origins_per_page=max_origins_per_page,
+            max_pages=max_pages,
+            enable_origins=enable_origins,
+        )
+
+        self.session.headers.update({"Accept": "application/html"})
+
+    def _get_and_parse(self, url: str) -> BeautifulSoup:
+        """Get the given url and parse the retrieved HTML using BeautifulSoup"""
+        response = self.http_request(url)
+        return BeautifulSoup(response.text, features="html.parser")
+
+    def get_pages(self) -> Iterator[Repositories]:
+        """Generate git 'project' URLs found on the current Gitweb server
+        The last_update date is retrieved on the list of repo page to avoid
+        to compute it on the repository details which only give a date per branch
+        """
+        bs_idx = self._get_and_parse(self.url)
+
+        page_results = []
+
+        for tr in bs_idx.find("table", {"class": re.compile("project_list")}).find_all(
+            "tr"
+        ):
+            link = tr.find("a")
+            if not link:
+                continue
+
+            repo_url = link["href"]
+
+            if repo_url.endswith("?o=descr"):
+                continue
+
+            # FIXME: Add parsing step from date interval like '9 years ago' to
+            # actual python datetime interval so we can derive last update
+            # span = tr.find("td", {"class": re.compile("age.*")})
+            # last_updated_date = span.get("title") if span else None
+            # last_updated_date = None
+
+            page_results.append({"url": repo_url})
+
+        yield page_results
+
+    def get_origins_from_page(
+        self, repositories: Repositories
+    ) -> Iterator[ListedOrigin]:
+        """Convert a page of gitweb repositories into a list of ListedOrigins."""
+        assert self.lister_obj.id is not None
+
+        for repo in repositories:
+            origin_url = self._get_origin_from_repository_url(repo["url"])
+            if origin_url is None:
+                continue
+
+            yield ListedOrigin(
+                lister_id=self.lister_obj.id,
+                url=origin_url,
+                visit_type="git",
+            )
+
+    def _get_origin_from_repository_url(self, repository_url: str) -> Optional[str]:
+        """Extract the git url from the repository page"""
+        try:
+            bs = self._get_and_parse(repository_url)
+        except HTTPError as e:
+            logger.warning(
+                "Unexpected HTTP status code %s on %s",
+                e.response.status_code,
+                e.response.url,
+            )
+            return None
+
+        # check if we are on the summary tab, if not, go to this tab
+        tab = bs.find("table", {"class": "tabs"})
+        if tab:
+            summary_a = tab.find("a", string="summary")
+            if summary_a:
+                summary_url = urljoin(repository_url, summary_a["href"]).strip("/")
+
+                if summary_url != repository_url:
+                    logger.debug(
+                        "%s : Active tab is not the summary, trying to load the summary page",
+                        repository_url,
+                    )
+                    return self._get_origin_from_repository_url(summary_url)
+            else:
+                logger.debug("No summary tab found on %s", repository_url)
+
+        urls = [
+            row.contents[-1].string
+            for row in bs.find_all("tr", {"class": "metadata_url"})
+        ]
+
+        if not urls:
+            logger.debug("No git urls found on %s", repository_url)
+            return None
+
+        # look for the http/https url, if any, and use it as origin_url
+        for url in urls:
+            if urlparse(url).scheme in ("http", "https"):
+                origin_url = url
+                break
+        else:
+            # otherwise, choose the first one
+            origin_url = urls[0]
+        return origin_url
diff --git a/swh/lister/gitweb/tasks.py b/swh/lister/gitweb/tasks.py
new file mode 100644
index 0000000000000000000000000000000000000000..5ff5439f2340f97ea9258efdfd4f6e878ab98251
--- /dev/null
+++ b/swh/lister/gitweb/tasks.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2023 The Software Heritage developers
+# License: GNU General Public License version 3, or any later version
+# See top-level LICENSE file for more information
+
+from typing import Dict
+
+from celery import shared_task
+
+from .lister import GitwebLister
+
+
+@shared_task(name=f"{__name__}.GitwebListerTask")
+def list_gitweb(**lister_args) -> Dict[str, str]:
+    """Lister task for Gitweb instances"""
+    lister = GitwebLister.from_configfile(**lister_args)
+    return lister.run().dict()
diff --git a/swh/lister/gitweb/tests/__init__.py b/swh/lister/gitweb/tests/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/README b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/README
new file mode 100644
index 0000000000000000000000000000000000000000..fb47a1d5be40c45942d9f5179297135f851ce909
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/README
@@ -0,0 +1,5 @@
+These files are a partial dump of https://git.distorted.org.uk/~mdw/.
+
+To ease testing, the page is named index.html. It does not represent the reality of
+those gitweb instances.
+
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/foobar b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/foobar
new file mode 100644
index 0000000000000000000000000000000000000000..328809400b5d0d58e432f5211283bd3beaf6c0e9
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/foobar
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<!-- git web interface version 2.11.0, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
+<!-- git core binaries version 2.11.0 -->
+<head>
+<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8"/>
+<meta name="generator" content="gitweb/2.11.0 git/2.11.0"/>
+<meta name="robots" content="index, nofollow"/>
+<title>mdw@git.distorted.org.uk Git</title>
+<base href="https://git.distorted.org.uk" />
+<link rel="stylesheet" type="text/css" href="/gitweb/gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="/local/gitweb.css"/>
+<link rel="alternate" title="mdw@git.distorted.org.uk Git projects list" href="https://git.distorted.org.uk/~mdw/?a=project_index" type="text/plain; charset=utf-8" />
+<link rel="alternate" title="mdw@git.distorted.org.uk Git projects feeds" href="https://git.distorted.org.uk/~mdw/?a=opml" type="text/x-opml" />
+<link rel="shortcut icon" href="/gitweb/git-favicon.png" type="image/png" />
+</head>
+<body>
+<div class="page_header">
+<a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/gitweb/git-logo.png" width="72" /></a><a href="/~mdw/">~mdw</a> / </div>
+<div class="index_include">
+<!-- -*-html-*- -->
+  hello
+</div>
+<div class="projsearch">
+<form method="get" action="https://git.distorted.org.uk/~mdw/" enctype="multipart/form-data"><input type="hidden" name="a" value="project_list"  />
+<input type="text" name="s"  size="60" title="Search project by name and description" />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span>
+<input type="submit" name="btnS" value="Search" />
+</form>
+<a href="https://git.distorted.org.uk/~mdw/">List all projects</a><br />
+</div>
+<table class="project_list">
+<tr>
+<th>Project</th>
+<th><a class="header" href="https://git.distorted.org.uk/~mdw/?o=descr">Description</a></th>
+<th><a class="header" href="https://git.distorted.org.uk/~mdw/?o=owner">Owner</a></th>
+<th><a class="header" href="https://git.distorted.org.uk/~mdw/?o=age">Last Change</a></th>
+<th></th>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/adns">adns</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/adns" title="GNU ADNS, an asynchronous DNS stub resolver -- local hacking">GNU ADNS, an asynchronous... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">6 years ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/adns">summary</a> | <a href="https://git.distorted.org.uk/~mdw/adns/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/adns/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/adns/tree">tree</a></td>
+</tr>
+<tr class="light">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/anag">anag</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/anag" title="Simple word-game solver">Simple word-game solver</a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">3 years ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/anag">summary</a> | <a href="https://git.distorted.org.uk/~mdw/anag/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/anag/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/anag/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/atoms">atoms</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/atoms" title="Amusing computer-mediated board game.  In Common Lisp, using GTK; hard to set up.">Amusing computer-mediated... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">10 years ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/atoms">summary</a> | <a href="https://git.distorted.org.uk/~mdw/atoms/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/atoms/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/atoms/tree">tree</a></td>
+</tr>
+<tr class="light">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/firewall">firewall</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/firewall" title="Firewall scripts for distorted.org.uk.">Firewall scripts for distorted... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">3 months ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall">summary</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips">doc/ips</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips" title="Introduction to Provable Security slides and notes">Introduction to Provable Secur... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">16 years ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips">summary</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools">mdwtools</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools" title="Various LaTeX packages">Various LaTeX packages</a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">7 weeks ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools">summary</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/scad">scad</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/scad" title="OpenSCAD models that I've designed.">OpenSCAD models that I&#39;ve... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">3 months ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/scad">summary</a> | <a href="https://git.distorted.org.uk/~mdw/scad/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/scad/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/scad/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/strayman">strayman</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/strayman" title="LaTeX document class for various documents">LaTeX document class for vario... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">2 months ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman">summary</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey">udpkey</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey" title="Transmit and receive cryptographic keys over UDP; useful during boot.">Transmit and receive cryptogra... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">7 years ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey">summary</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree">tree</a></td>
+</tr>
+<tr class="light">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/vmctl">vmctl</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/vmctl" title="Constrained VM management, via SSH.">Constrained VM management... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">8 years ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/vmctl">summary</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/tree">tree</a></td>
+</tr>
+</table>
+<div class="page_footer">
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/?a=opml">OPML</a> <a class="rss_logo" href="https://git.distorted.org.uk/~mdw/?a=project_index">TXT</a>
+</div>
+<script type="text/javascript" src="/gitweb/gitweb.js"></script>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
+</body>
+</html>
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw
new file mode 100644
index 0000000000000000000000000000000000000000..e9c501934b8f20d3ff88a26efaca77918e419d0c
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<!-- git web interface version 2.11.0, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
+<!-- git core binaries version 2.11.0 -->
+<head>
+<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8"/>
+<meta name="generator" content="gitweb/2.11.0 git/2.11.0"/>
+<meta name="robots" content="index, nofollow"/>
+<title>mdw@git.distorted.org.uk Git</title>
+<base href="https://git.distorted.org.uk" />
+<link rel="stylesheet" type="text/css" href="/gitweb/gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="/local/gitweb.css"/>
+<link rel="alternate" title="mdw@git.distorted.org.uk Git projects list" href="https://git.distorted.org.uk/~mdw/?a=project_index" type="text/plain; charset=utf-8" />
+<link rel="alternate" title="mdw@git.distorted.org.uk Git projects feeds" href="https://git.distorted.org.uk/~mdw/?a=opml" type="text/x-opml" />
+<link rel="shortcut icon" href="/gitweb/git-favicon.png" type="image/png" />
+</head>
+<body>
+<div class="page_header">
+<a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/gitweb/git-logo.png" width="72" /></a><a href="/~mdw/">~mdw</a> / </div>
+<div class="index_include">
+<!-- -*-html-*- -->
+  <p>These are the GIT repositories for some of my various free software
+    projects, and some other projects I hack on or just find useful to
+    have local copies of.  Feel free to browse them here.</p>
+
+  <p>The primary source for browsing these projects is
+    <a href="https://git.distorted.org.uk/~mdw/"><tt>https://git.distorted.org.uk/~mdw/</tt></a>.
+    There's a similar browser at <a href="https://www.chiark.greenend.org.uk/ucgi/~mdw/git/"><tt>https://www.chiark.greenend.org.uk/ucgi/~mdw/git/</tt></a>
+    which might be faster, or more available, but very slightly less
+    up-to-date.</p>
+
+  <p>Project <i>foo</i> can be cloned using any of the following URLs:
+    <ul>
+      <li><tt>https://git.distorted.org.uk/~mdw/git/</tt><i>foo</i></li>
+      <li><tt>git://git.distorted.org.uk/~mdw/</tt><i>foo</i></li>
+      <li><tt>https://www.chiark.greenend.org.uk/ucgi/~mdw/git/</tt><i>foo</i></li>
+      <li><tt>git://git.chiark.greenend.org.uk/~mdw/</tt><i>foo</i></li>
+    </ul>
+    The <tt>https://</tt>&hellip; URLs are recommended if you can use
+    them, because they provide a measure of authenticity (as well as the
+    obvious privacy benefits).
+  </p>
+
+  <p>In order to build many of these projects, you'll need to build and
+    install <tt>cfd</tt>, and quite possibly one or more of the
+    libraries <tt>mLib</tt> and <tt>catacomb</tt>.  You'll also need
+    recent-ish Autoconf, Automake and Libtool, and the Autoconf archive.
+    General procedure is as follows:
+    <ul>
+      <li>Run <tt>mdw-setup</tt>.  This will run the appropriate
+	autotools.</li>
+      <li>Say <tt>mkdir build</tt> to make a build directory.</li>
+      <li>Say <tt>cd build</tt> to change to the build directory.</li>
+      <li>Say <tt>../configure</tt>, maybe with some options to control
+	the configuration process.</li>
+      <li>Say <tt>make</tt>.</li>
+      <li>Now start hacking on things.</li>
+    </ul>
+    If you wanted to build Debian packages, run <tt>mdw-setup
+    &ndash;d</tt> instead.  This will skip making a <tt>build</tt>
+    directory, which is good because otherwise it interferes with the
+    Debian build process.  The various <tt>debian/rules</tt> targets
+    should work OK after that.</p>
+
+  <p>Please <a href="mailto:mdw@distorted.org.uk">mail me</a> patches!</p>
+</div>
+<div class="projsearch">
+<form method="get" action="https://git.distorted.org.uk/~mdw/" enctype="multipart/form-data"><input type="hidden" name="a" value="project_list"  />
+<input type="text" name="s"  size="60" title="Search project by name and description" />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span>
+<input type="submit" name="btnS" value="Search" />
+</form>
+<a href="https://git.distorted.org.uk/~mdw/">List all projects</a><br />
+</div>
+<table class="project_list">
+<tr>
+<th>Project</th>
+<th><a class="header" href="https://git.distorted.org.uk/~mdw/?o=descr">Description</a></th>
+<th><a class="header" href="https://git.distorted.org.uk/~mdw/?o=owner">Owner</a></th>
+<th><a class="header" href="https://git.distorted.org.uk/~mdw/?o=age">Last Change</a></th>
+<th></th>
+</tr>
+<tr class="light">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/firewall">firewall</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/firewall" title="Firewall scripts for distorted.org.uk.">Firewall scripts for distorted... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">3 months ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall">summary</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips">doc/ips</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips" title="Introduction to Provable Security slides and notes">Introduction to Provable Secur... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">16 years ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips">summary</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools">mdwtools</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools" title="Various LaTeX packages">Various LaTeX packages</a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">7 weeks ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools">summary</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/scad">scad</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/scad" title="OpenSCAD models that I've designed.">OpenSCAD models that I&#39;ve... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">3 months ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/scad">summary</a> | <a href="https://git.distorted.org.uk/~mdw/scad/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/scad/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/scad/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/strayman">strayman</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/strayman" title="LaTeX document class for various documents">LaTeX document class for vario... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">2 months ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman">summary</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree">tree</a></td>
+</tr>
+<tr class="dark">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey">udpkey</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey" title="Transmit and receive cryptographic keys over UDP; useful during boot.">Transmit and receive cryptogra... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">7 years ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey">summary</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree">tree</a></td>
+</tr>
+<tr class="light">
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/vmctl">vmctl</a></td>
+<td><a class="list" href="https://git.distorted.org.uk/~mdw/vmctl" title="Constrained VM management, via SSH.">Constrained VM management... </a></td>
+<td><i>Mark Wooding</i></td>
+<td class="age2">8 years ago</td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/vmctl">summary</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/tree">tree</a></td>
+</tr>
+</table>
+<div class="page_footer">
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/?a=opml">OPML</a> <a class="rss_logo" href="https://git.distorted.org.uk/~mdw/?a=project_index">TXT</a>
+</div>
+<script type="text/javascript" src="/gitweb/gitweb.js"></script>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
+</body>
+</html>
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_doc_ips b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_doc_ips
new file mode 100644
index 0000000000000000000000000000000000000000..796be69335ea073290c04c9d841c6edc67e2b6c2
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_doc_ips
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<!-- git web interface version 2.11.0, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
+<!-- git core binaries version 2.11.0 -->
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+<meta name="generator" content="gitweb/2.11.0 git/2.11.0"/>
+<meta name="robots" content="index, nofollow"/>
+<title>mdw@git.distorted.org.uk Git - doc/ips/summary</title>
+<base href="https://git.distorted.org.uk" />
+<link rel="stylesheet" type="text/css" href="/gitweb/gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="/local/gitweb.css"/>
+<link rel="alternate" title="doc/ips - log - RSS feed" href="https://git.distorted.org.uk/~mdw/doc/ips/rss" type="application/rss+xml" />
+<link rel="alternate" title="doc/ips - log - RSS feed (no merges)" href="https://git.distorted.org.uk/~mdw/doc/ips/rss?opt=--no-merges" type="application/rss+xml" />
+<link rel="alternate" title="doc/ips - log - Atom feed" href="https://git.distorted.org.uk/~mdw/doc/ips/atom" type="application/atom+xml" />
+<link rel="alternate" title="doc/ips - log - Atom feed (no merges)" href="https://git.distorted.org.uk/~mdw/doc/ips/atom?opt=--no-merges" type="application/atom+xml" />
+<link rel="shortcut icon" href="/gitweb/git-favicon.png" type="image/png" />
+</head>
+<body>
+<div class="page_header">
+<a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/gitweb/git-logo.png" width="72" /></a><a href="/~mdw/">~mdw</a> / <a href="https://git.distorted.org.uk/~mdw/?a=project_list;pf=doc">doc</a> / <a href="https://git.distorted.org.uk/~mdw/doc/ips">ips</a> / summary
+</div>
+<form method="get" action="https://git.distorted.org.uk/~mdw//doc/ips" enctype="multipart/form-data"><div class="search">
+<input name="a" type="hidden" value="search" />
+<input name="h" type="hidden" value="HEAD" />
+<select name="st" >
+<option selected="selected" value="commit">commit</option>
+<option value="grep">grep</option>
+<option value="author">author</option>
+<option value="committer">committer</option>
+<option value="pickaxe">pickaxe</option>
+</select> <a href="https://git.distorted.org.uk/~mdw/doc/ips/search_help" title="search help">?</a> search:
+<input type="text" name="s"  />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div>
+</form>
+<div class="page_nav">
+summary | <a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/014f5211bd99f07f2bc962adb9edfded92d31b2b">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/014f5211bd99f07f2bc962adb9edfded92d31b2b">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree">tree</a><br/>
+<br/>
+</div>
+<div class="title">&nbsp;</div>
+<table class="projects_list">
+<tr id="metadata_desc"><td>description</td><td>Introduction to Provable Security slides and notes</td></tr>
+<tr id="metadata_owner"><td>owner</td><td>Mark Wooding</td></tr>
+<tr id="metadata_lchange"><td>last change</td><td><span class="datetime">Wed, 1 Nov 2006 14:32:34 +0000</span> (14:32 +0000)</td></tr>
+<tr class="metadata_url"><td>URL</td><td>https://git.distorted.org.uk/~mdw/doc/ips</td></tr>
+<tr class="metadata_url"><td></td><td>git://git.distorted.org.uk/~mdw/doc/ips</td></tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog">shortlog</a>
+</div>
+<table class="shortlog">
+<tr class="dark">
+<td title="16 years ago"><i>2006-11-01</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/014f5211bd99f07f2bc962adb9edfded92d31b2b">ips.cls: Fix the page size of the PDF output.</a> <span class="refs"> <span class="head" title="heads/master"><a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog/refs/heads/master">master</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/014f5211bd99f07f2bc962adb9edfded92d31b2b">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/014f5211bd99f07f2bc962adb9edfded92d31b2b">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/014f5211bd99f07f2bc962adb9edfded92d31b2b">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/014f5211bd99f07f2bc962adb9edfded92d31b2b.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/014f5211bd99f07f2bc962adb9edfded92d31b2b.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="16 years ago"><i>2006-11-01</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/754df4fbcb15f30cfa7bb5a0a1e72384568ef743">Merge ponder:doc/ips</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/754df4fbcb15f30cfa7bb5a0a1e72384568ef743">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/754df4fbcb15f30cfa7bb5a0a1e72384568ef743">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/754df4fbcb15f30cfa7bb5a0a1e72384568ef743">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/754df4fbcb15f30cfa7bb5a0a1e72384568ef743.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/754df4fbcb15f30cfa7bb5a0a1e72384568ef743.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="16 years ago"><i>2006-11-01</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/2e24ecf52da0f6bd5d5873037c1b535edf32045f">auth-mac: Rewrite the stuff about universal hashing.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/2e24ecf52da0f6bd5d5873037c1b535edf32045f">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/2e24ecf52da0f6bd5d5873037c1b535edf32045f">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/2e24ecf52da0f6bd5d5873037c1b535edf32045f">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/2e24ecf52da0f6bd5d5873037c1b535edf32045f.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/2e24ecf52da0f6bd5d5873037c1b535edf32045f.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="16 years ago"><i>2006-09-12</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/57ea5481e3ef900bd2a23df2f117a3b5f382b885" title="Remove unnecessary $2^{-L}$ term from the AXU-hashing result.">Remove unnecessary $2^{-L}$ term from the AXU-hashing... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/57ea5481e3ef900bd2a23df2f117a3b5f382b885">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/57ea5481e3ef900bd2a23df2f117a3b5f382b885">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/57ea5481e3ef900bd2a23df2f117a3b5f382b885">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/57ea5481e3ef900bd2a23df2f117a3b5f382b885.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/57ea5481e3ef900bd2a23df2f117a3b5f382b885.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="17 years ago"><i>2006-03-02</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/07c44433fe814a81f2d87e161ccd36b4a072cbce">Kill obsolete setup script; set up gitiginore.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/07c44433fe814a81f2d87e161ccd36b4a072cbce">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/07c44433fe814a81f2d87e161ccd36b4a072cbce">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/07c44433fe814a81f2d87e161ccd36b4a072cbce">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/07c44433fe814a81f2d87e161ccd36b4a072cbce.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/07c44433fe814a81f2d87e161ccd36b4a072cbce.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="17 years ago"><i>2006-03-02</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/5431b6027340790876417c169ecf65220b6b1eeb">Makefile: Do subdirectory builds correctly.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/5431b6027340790876417c169ecf65220b6b1eeb">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/5431b6027340790876417c169ecf65220b6b1eeb">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/5431b6027340790876417c169ecf65220b6b1eeb">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/5431b6027340790876417c169ecf65220b6b1eeb.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/5431b6027340790876417c169ecf65220b6b1eeb.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="17 years ago"><i>2006-03-02</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/b912aadfc4eb26f1c4cf3332eb510b41a4d9a036">Expunge revision histories.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/b912aadfc4eb26f1c4cf3332eb510b41a4d9a036">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/b912aadfc4eb26f1c4cf3332eb510b41a4d9a036">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/b912aadfc4eb26f1c4cf3332eb510b41a4d9a036">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/b912aadfc4eb26f1c4cf3332eb510b41a4d9a036.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/b912aadfc4eb26f1c4cf3332eb510b41a4d9a036.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="17 years ago"><i>2006-03-02</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=mdw;st=author" title="Search for commits authored by mdw">mdw</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/6278c386d4ce1feeab4adba11c161602ade00414">enc-ies: Various tweakings and tidyings.</a> <span class="refs"> <span class="head" title="heads/svn"><a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog/refs/heads/svn">svn</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/6278c386d4ce1feeab4adba11c161602ade00414">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/6278c386d4ce1feeab4adba11c161602ade00414">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/6278c386d4ce1feeab4adba11c161602ade00414">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/6278c386d4ce1feeab4adba11c161602ade00414.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/6278c386d4ce1feeab4adba11c161602ade00414.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="17 years ago"><i>2006-03-02</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=mdw;st=author" title="Search for commits authored by mdw">mdw</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/1c35584f74096086e72f35760db57b3327e0dcd7">cls: Move amssymb earlier to prevent interference.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/1c35584f74096086e72f35760db57b3327e0dcd7">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/1c35584f74096086e72f35760db57b3327e0dcd7">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/1c35584f74096086e72f35760db57b3327e0dcd7">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/1c35584f74096086e72f35760db57b3327e0dcd7.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/1c35584f74096086e72f35760db57b3327e0dcd7.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="18 years ago"><i>2004-09-04</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=mdw;st=author" title="Search for commits authored by mdw">mdw</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/1e42e2eb07162c3163369f24e169da91dfc28503">The Great Upheaval -- step 1.</a> <span class="refs"> <span class="tag indirect" title="tags/1.1.1"><a href="https://git.distorted.org.uk/~mdw/doc/ips/tag/refs/tags/1.1.1">1.1.1</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/1e42e2eb07162c3163369f24e169da91dfc28503">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/1e42e2eb07162c3163369f24e169da91dfc28503">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/1e42e2eb07162c3163369f24e169da91dfc28503">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/1e42e2eb07162c3163369f24e169da91dfc28503.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/1e42e2eb07162c3163369f24e169da91dfc28503.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="20 years ago"><i>2002-07-17</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=mdw;st=author" title="Search for commits authored by mdw">mdw</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/d7891575df8f6673b4e4f65d556a171d8aab2ba0">Various small fixes.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/d7891575df8f6673b4e4f65d556a171d8aab2ba0">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/d7891575df8f6673b4e4f65d556a171d8aab2ba0">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/d7891575df8f6673b4e4f65d556a171d8aab2ba0">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/d7891575df8f6673b4e4f65d556a171d8aab2ba0.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/d7891575df8f6673b4e4f65d556a171d8aab2ba0.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="21 years ago"><i>2002-02-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=mdw;st=author" title="Search for commits authored by mdw">mdw</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/384bd7f2a9d1228cd25ad3c05f5202226f0a95af">New build system.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/384bd7f2a9d1228cd25ad3c05f5202226f0a95af">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/384bd7f2a9d1228cd25ad3c05f5202226f0a95af">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/384bd7f2a9d1228cd25ad3c05f5202226f0a95af">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/384bd7f2a9d1228cd25ad3c05f5202226f0a95af.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/384bd7f2a9d1228cd25ad3c05f5202226f0a95af.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="21 years ago"><i>2002-02-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=mdw;st=author" title="Search for commits authored by mdw">mdw</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/8bf17fdcf806a635d62549461f3c83e7feb7f167">Ignore new files.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/8bf17fdcf806a635d62549461f3c83e7feb7f167">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/8bf17fdcf806a635d62549461f3c83e7feb7f167">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/8bf17fdcf806a635d62549461f3c83e7feb7f167">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/8bf17fdcf806a635d62549461f3c83e7feb7f167.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/8bf17fdcf806a635d62549461f3c83e7feb7f167.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="21 years ago"><i>2002-02-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=mdw;st=author" title="Search for commits authored by mdw">mdw</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/fa9e486eb17abd8622299018e95be9fc2ad45c55">Put bibliography database list in one place.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/fa9e486eb17abd8622299018e95be9fc2ad45c55">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/fa9e486eb17abd8622299018e95be9fc2ad45c55">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/fa9e486eb17abd8622299018e95be9fc2ad45c55">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/fa9e486eb17abd8622299018e95be9fc2ad45c55.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/fa9e486eb17abd8622299018e95be9fc2ad45c55.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="21 years ago"><i>2002-02-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=mdw;st=author" title="Search for commits authored by mdw">mdw</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/aa3dde655076dc2ac35fd78c702ce50a25f25293">Move most of the hacking into `mdwslides.dtx&#39;.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/aa3dde655076dc2ac35fd78c702ce50a25f25293">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/aa3dde655076dc2ac35fd78c702ce50a25f25293">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/aa3dde655076dc2ac35fd78c702ce50a25f25293">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/aa3dde655076dc2ac35fd78c702ce50a25f25293.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/aa3dde655076dc2ac35fd78c702ce50a25f25293.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="21 years ago"><i>2002-02-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/doc/ips/search?s=mdw;st=author" title="Search for commits authored by mdw">mdw</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/60153476700364947cb0b68a4e166cb1350b0674">New build system.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/60153476700364947cb0b68a4e166cb1350b0674">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commitdiff/60153476700364947cb0b68a4e166cb1350b0674">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/60153476700364947cb0b68a4e166cb1350b0674">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/60153476700364947cb0b68a4e166cb1350b0674.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/doc/ips/snapshot/60153476700364947cb0b68a4e166cb1350b0674.zip">zip</a>)</td>
+</tr>
+<tr>
+<td colspan="4"><a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog">...</a></td>
+</tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/doc/ips/tags">tags</a>
+</div>
+<table class="tags">
+<tr class="dark">
+<td><i>unknown</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/1e42e2eb07162c3163369f24e169da91dfc28503">1.1.1</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/tag/d9adb7e9bb288c0588b1b7b46654c3e0d87954f3"></a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/doc/ips/tag/d9adb7e9bb288c0588b1b7b46654c3e0d87954f3">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/1e42e2eb07162c3163369f24e169da91dfc28503">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog/refs/tags/1.1.1">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/log/refs/tags/1.1.1">log</a></td>
+</tr><tr class="light">
+<td><i>unknown</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/doc/ips/commit/34309387d08e78b4296bba7a193f602ce5388279">1.1.0</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/doc/ips/tag/39969a237dd73ee3f127bf0800d0bd5f7550b9e6"></a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/doc/ips/tag/39969a237dd73ee3f127bf0800d0bd5f7550b9e6">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/commit/34309387d08e78b4296bba7a193f602ce5388279">commit</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog/refs/tags/1.1.0">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/log/refs/tags/1.1.0">log</a></td>
+</tr></table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/doc/ips/heads">heads</a>
+</div>
+<table class="heads">
+<tr class="dark">
+<td><i>16 years ago</i></td>
+<td class="current_head"><a class="list name" href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog/refs/heads/master">master</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog/refs/heads/master">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/log/refs/heads/master">log</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/refs/heads/master">tree</a></td>
+</tr><tr class="light">
+<td><i>17 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog/refs/heads/svn">svn</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/doc/ips/shortlog/refs/heads/svn">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/log/refs/heads/svn">log</a> | <a href="https://git.distorted.org.uk/~mdw/doc/ips/tree/refs/heads/svn">tree</a></td>
+</tr></table>
+<div class="page_footer">
+<div class="page_footer_text">Introduction to Provable Security slides and notes</div>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/doc/ips/rss" title="log RSS feed">RSS</a>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/doc/ips/atom" title="log Atom feed">Atom</a>
+</div>
+<script type="text/javascript" src="/gitweb/gitweb.js"></script>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
+</body>
+</html>
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_firewall b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_firewall
new file mode 100644
index 0000000000000000000000000000000000000000..6113b2ac90ed33205fc1591d10e0446206bd6e7e
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_firewall
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<!-- git web interface version 2.11.0, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
+<!-- git core binaries version 2.11.0 -->
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+<meta name="generator" content="gitweb/2.11.0 git/2.11.0"/>
+<meta name="robots" content="index, nofollow"/>
+<title>mdw@git.distorted.org.uk Git - firewall/summary</title>
+<base href="https://git.distorted.org.uk" />
+<link rel="stylesheet" type="text/css" href="/gitweb/gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="/local/gitweb.css"/>
+<link rel="alternate" title="firewall - log - RSS feed" href="https://git.distorted.org.uk/~mdw/firewall/rss" type="application/rss+xml" />
+<link rel="alternate" title="firewall - log - RSS feed (no merges)" href="https://git.distorted.org.uk/~mdw/firewall/rss?opt=--no-merges" type="application/rss+xml" />
+<link rel="alternate" title="firewall - log - Atom feed" href="https://git.distorted.org.uk/~mdw/firewall/atom" type="application/atom+xml" />
+<link rel="alternate" title="firewall - log - Atom feed (no merges)" href="https://git.distorted.org.uk/~mdw/firewall/atom?opt=--no-merges" type="application/atom+xml" />
+<link rel="shortcut icon" href="/gitweb/git-favicon.png" type="image/png" />
+</head>
+<body>
+<div class="page_header">
+<a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/gitweb/git-logo.png" width="72" /></a><a href="/~mdw/">~mdw</a> / <a href="https://git.distorted.org.uk/~mdw/firewall">firewall</a> / summary
+</div>
+<form method="get" action="https://git.distorted.org.uk/~mdw//firewall" enctype="multipart/form-data"><div class="search">
+<input name="a" type="hidden" value="search" />
+<input name="h" type="hidden" value="HEAD" />
+<select name="st" >
+<option selected="selected" value="commit">commit</option>
+<option value="grep">grep</option>
+<option value="author">author</option>
+<option value="committer">committer</option>
+<option value="pickaxe">pickaxe</option>
+</select> <a href="https://git.distorted.org.uk/~mdw/firewall/search_help" title="search help">?</a> search:
+<input type="text" name="s"  />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div>
+</form>
+<div class="page_nav">
+summary | <a href="https://git.distorted.org.uk/~mdw/firewall/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commit/8a3660c1f5d30802baec439821c42ea93eb66584">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/8a3660c1f5d30802baec439821c42ea93eb66584">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree">tree</a><br/>
+<br/>
+</div>
+<div class="title">&nbsp;</div>
+<table class="projects_list">
+<tr id="metadata_desc"><td>description</td><td>Firewall scripts for distorted.org.uk.</td></tr>
+<tr id="metadata_owner"><td>owner</td><td>Mark Wooding</td></tr>
+<tr id="metadata_lchange"><td>last change</td><td><span class="datetime">Thu, 16 Mar 2023 18:09:32 +0000</span> (18:09 +0000)</td></tr>
+<tr class="metadata_url"><td>URL</td><td>https://git.distorted.org.uk/~mdw/firewall</td></tr>
+<tr class="metadata_url"><td></td><td>git://git.distorted.org.uk/~mdw/firewall</td></tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/firewall/shortlog">shortlog</a>
+</div>
+<table class="shortlog">
+<tr class="dark">
+<td title="3 months ago"><i>2023-03-16</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/8a3660c1f5d30802baec439821c42ea93eb66584" title="local.m4: Fix the IPv4 version of the `inbound-untrusted' chain.">local.m4: Fix the IPv4 version of the `inbound-untruste... </a> <span class="refs"> <span class="head" title="heads/master"><a href="https://git.distorted.org.uk/~mdw/firewall/shortlog/refs/heads/master">master</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/8a3660c1f5d30802baec439821c42ea93eb66584">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/8a3660c1f5d30802baec439821c42ea93eb66584">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/8a3660c1f5d30802baec439821c42ea93eb66584">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/8a3660c1f5d30802baec439821c42ea93eb66584.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/8a3660c1f5d30802baec439821c42ea93eb66584.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="4 months ago"><i>2023-02-25</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/d41e2f123e242866ae3cac6919cc1ce73825c605" title="local.mk, roadstar.m4: Move lpr service to roadstar; decommission vampire.">local.mk, roadstar.m4: Move lpr service to roadstar... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/d41e2f123e242866ae3cac6919cc1ce73825c605">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/d41e2f123e242866ae3cac6919cc1ce73825c605">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/d41e2f123e242866ae3cac6919cc1ce73825c605">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/d41e2f123e242866ae3cac6919cc1ce73825c605.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/d41e2f123e242866ae3cac6919cc1ce73825c605.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="13 months ago"><i>2022-05-30</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/599e123ad47ff30d11eb91fd74262b5cf90d3257">*.m4: Actually allow NFS to untrusted hosts.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/599e123ad47ff30d11eb91fd74262b5cf90d3257">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/599e123ad47ff30d11eb91fd74262b5cf90d3257">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/599e123ad47ff30d11eb91fd74262b5cf90d3257">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/599e123ad47ff30d11eb91fd74262b5cf90d3257.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/599e123ad47ff30d11eb91fd74262b5cf90d3257.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="13 months ago"><i>2022-05-30</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/94ce6e764e92676c1a7dea68820bcf198ea4c466" title="local.m4, etc.: Establish `inbound-untrusted' chain and deploy.">local.m4, etc.: Establish `inbound-untrusted&#39; chain... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/94ce6e764e92676c1a7dea68820bcf198ea4c466">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/94ce6e764e92676c1a7dea68820bcf198ea4c466">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/94ce6e764e92676c1a7dea68820bcf198ea4c466">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/94ce6e764e92676c1a7dea68820bcf198ea4c466.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/94ce6e764e92676c1a7dea68820bcf198ea4c466.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="13 months ago"><i>2022-05-30</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/4942d7c1381f147b6c1f06e035d710e29b45dae0" title="fender.m4, ibanez.m4, vampire.m4: Invoke `footables' via `run'.">fender.m4, ibanez.m4, vampire.m4: Invoke `footables... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/4942d7c1381f147b6c1f06e035d710e29b45dae0">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/4942d7c1381f147b6c1f06e035d710e29b45dae0">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/4942d7c1381f147b6c1f06e035d710e29b45dae0">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/4942d7c1381f147b6c1f06e035d710e29b45dae0.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/4942d7c1381f147b6c1f06e035d710e29b45dae0.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="13 months ago"><i>2022-05-09</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/f788388b46884fb049640a504a0e95238277e1a2" title="Merge branch 'master' of git.distorted.org.uk:~mdw/publish/public-git/firewall">Merge branch &#39;master&#39; of git.distorted.org.uk:~mdw... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/f788388b46884fb049640a504a0e95238277e1a2">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/f788388b46884fb049640a504a0e95238277e1a2">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/f788388b46884fb049640a504a0e95238277e1a2">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/f788388b46884fb049640a504a0e95238277e1a2.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/f788388b46884fb049640a504a0e95238277e1a2.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="13 months ago"><i>2022-05-09</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/25778fe86b2806f0a179662ad70c9787f92af767" title="numbers.m4, artist.m4: Add a second DisOrder port for RTP multicast.">numbers.m4, artist.m4: Add a second DisOrder port for... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/25778fe86b2806f0a179662ad70c9787f92af767">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/25778fe86b2806f0a179662ad70c9787f92af767">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/25778fe86b2806f0a179662ad70c9787f92af767">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/25778fe86b2806f0a179662ad70c9787f92af767.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/25778fe86b2806f0a179662ad70c9787f92af767.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="13 months ago"><i>2022-05-09</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/175f1d48c46ae845fbaa3298a000e13ffb4e62fd">local.m4: Add `mdwdev.upn&#39;.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/175f1d48c46ae845fbaa3298a000e13ffb4e62fd">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/175f1d48c46ae845fbaa3298a000e13ffb4e62fd">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/175f1d48c46ae845fbaa3298a000e13ffb4e62fd">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/175f1d48c46ae845fbaa3298a000e13ffb4e62fd.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/175f1d48c46ae845fbaa3298a000e13ffb4e62fd.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="20 months ago"><i>2021-11-01</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/5e5950c5e929593b05740aa4173c93c50eac0110">jazz.m4, numbers.m4: Allow Privoxy access to SGO VPN.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/5e5950c5e929593b05740aa4173c93c50eac0110">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/5e5950c5e929593b05740aa4173c93c50eac0110">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/5e5950c5e929593b05740aa4173c93c50eac0110">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/5e5950c5e929593b05740aa4173c93c50eac0110.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/5e5950c5e929593b05740aa4173c93c50eac0110.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="2 years ago"><i>2021-02-03</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/c8d1a00b58e6621d5929d8938ca893ed995fb6fa">local.m4: Update external NTP servers.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/c8d1a00b58e6621d5929d8938ca893ed995fb6fa">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/c8d1a00b58e6621d5929d8938ca893ed995fb6fa">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/c8d1a00b58e6621d5929d8938ca893ed995fb6fa">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/c8d1a00b58e6621d5929d8938ca893ed995fb6fa.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/c8d1a00b58e6621d5929d8938ca893ed995fb6fa.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="3 years ago"><i>2020-04-08</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/ea2e5ed4e1bbb86b70c69a96c72e3809284fe293">local.m4: Add entry for new laptop `spirit&#39;.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/ea2e5ed4e1bbb86b70c69a96c72e3809284fe293">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/ea2e5ed4e1bbb86b70c69a96c72e3809284fe293">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/ea2e5ed4e1bbb86b70c69a96c72e3809284fe293">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/ea2e5ed4e1bbb86b70c69a96c72e3809284fe293.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/ea2e5ed4e1bbb86b70c69a96c72e3809284fe293.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="4 years ago"><i>2018-12-26</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/1b1012475aa2ffe55ac358220c15c970cb49df4a" title="local.m4, precision.m4: Introduce `vpnnat' network class for nefarious hacks.">local.m4, precision.m4: Introduce `vpnnat&#39; network... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/1b1012475aa2ffe55ac358220c15c970cb49df4a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/1b1012475aa2ffe55ac358220c15c970cb49df4a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/1b1012475aa2ffe55ac358220c15c970cb49df4a">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/1b1012475aa2ffe55ac358220c15c970cb49df4a.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/1b1012475aa2ffe55ac358220c15c970cb49df4a.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="4 years ago"><i>2018-12-26</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/d21c8fa90dc31cc1f552de6fd3c22d1cefa1d15d">local.mk: Reinstate mango.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/d21c8fa90dc31cc1f552de6fd3c22d1cefa1d15d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/d21c8fa90dc31cc1f552de6fd3c22d1cefa1d15d">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/d21c8fa90dc31cc1f552de6fd3c22d1cefa1d15d">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/d21c8fa90dc31cc1f552de6fd3c22d1cefa1d15d.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/d21c8fa90dc31cc1f552de6fd3c22d1cefa1d15d.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="5 years ago"><i>2017-10-02</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/7377aca7bc3d4cfd29e6974c861048db8e1a4161">local.m4: Filter out source routing in the firewall.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/7377aca7bc3d4cfd29e6974c861048db8e1a4161">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/7377aca7bc3d4cfd29e6974c861048db8e1a4161">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/7377aca7bc3d4cfd29e6974c861048db8e1a4161">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/7377aca7bc3d4cfd29e6974c861048db8e1a4161.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/7377aca7bc3d4cfd29e6974c861048db8e1a4161.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="5 years ago"><i>2017-10-02</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/994ac8d0782c89a636f47b02a2dc096c72ff58c5">local.m4: Don&#39;t expect `forbidden&#39; to return.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/994ac8d0782c89a636f47b02a2dc096c72ff58c5">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/994ac8d0782c89a636f47b02a2dc096c72ff58c5">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/994ac8d0782c89a636f47b02a2dc096c72ff58c5">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/994ac8d0782c89a636f47b02a2dc096c72ff58c5.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/994ac8d0782c89a636f47b02a2dc096c72ff58c5.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="5 years ago"><i>2017-10-01</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/firewall/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/firewall/commit/d0409c909cb113596f5d0daed5be237a42878c8d">local.m4: Add the `hippotat&#39; network.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/commit/d0409c909cb113596f5d0daed5be237a42878c8d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/commitdiff/d0409c909cb113596f5d0daed5be237a42878c8d">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/d0409c909cb113596f5d0daed5be237a42878c8d">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/d0409c909cb113596f5d0daed5be237a42878c8d.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/firewall/snapshot/d0409c909cb113596f5d0daed5be237a42878c8d.zip">zip</a>)</td>
+</tr>
+<tr>
+<td colspan="4"><a href="https://git.distorted.org.uk/~mdw/firewall/shortlog">...</a></td>
+</tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/firewall/heads">heads</a>
+</div>
+<table class="heads">
+<tr class="dark">
+<td><i>3 months ago</i></td>
+<td class="current_head"><a class="list name" href="https://git.distorted.org.uk/~mdw/firewall/shortlog/refs/heads/master">master</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/shortlog/refs/heads/master">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/log/refs/heads/master">log</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/refs/heads/master">tree</a></td>
+</tr><tr class="light">
+<td><i>8 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/firewall/shortlog/refs/heads/jaguar">jaguar</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/shortlog/refs/heads/jaguar">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/log/refs/heads/jaguar">log</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/refs/heads/jaguar">tree</a></td>
+</tr><tr class="dark">
+<td><i>11 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/firewall/shortlog/refs/heads/emergency">emergency</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/firewall/shortlog/refs/heads/emergency">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/log/refs/heads/emergency">log</a> | <a href="https://git.distorted.org.uk/~mdw/firewall/tree/refs/heads/emergency">tree</a></td>
+</tr></table>
+<div class="page_footer">
+<div class="page_footer_text">Firewall scripts for distorted.org.uk.</div>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/firewall/rss" title="log RSS feed">RSS</a>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/firewall/atom" title="log Atom feed">Atom</a>
+</div>
+<script type="text/javascript" src="/gitweb/gitweb.js"></script>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_mdwtools b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_mdwtools
new file mode 100644
index 0000000000000000000000000000000000000000..6ab1686e95aa47b500187f1f286afce46911c93c
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_mdwtools
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<!-- git web interface version 2.11.0, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
+<!-- git core binaries version 2.11.0 -->
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+<meta name="generator" content="gitweb/2.11.0 git/2.11.0"/>
+<meta name="robots" content="index, nofollow"/>
+<title>mdw@git.distorted.org.uk Git - mdwtools/summary</title>
+<base href="https://git.distorted.org.uk" />
+<link rel="stylesheet" type="text/css" href="/gitweb/gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="/local/gitweb.css"/>
+<link rel="alternate" title="mdwtools - log - RSS feed" href="https://git.distorted.org.uk/~mdw/mdwtools/rss" type="application/rss+xml" />
+<link rel="alternate" title="mdwtools - log - RSS feed (no merges)" href="https://git.distorted.org.uk/~mdw/mdwtools/rss?opt=--no-merges" type="application/rss+xml" />
+<link rel="alternate" title="mdwtools - log - Atom feed" href="https://git.distorted.org.uk/~mdw/mdwtools/atom" type="application/atom+xml" />
+<link rel="alternate" title="mdwtools - log - Atom feed (no merges)" href="https://git.distorted.org.uk/~mdw/mdwtools/atom?opt=--no-merges" type="application/atom+xml" />
+<link rel="shortcut icon" href="/gitweb/git-favicon.png" type="image/png" />
+</head>
+<body>
+<div class="page_header">
+<a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/gitweb/git-logo.png" width="72" /></a><a href="/~mdw/">~mdw</a> / <a href="https://git.distorted.org.uk/~mdw/mdwtools">mdwtools</a> / summary
+</div>
+<form method="get" action="https://git.distorted.org.uk/~mdw//mdwtools" enctype="multipart/form-data"><div class="search">
+<input name="a" type="hidden" value="search" />
+<input name="h" type="hidden" value="HEAD" />
+<select name="st" >
+<option selected="selected" value="commit">commit</option>
+<option value="grep">grep</option>
+<option value="author">author</option>
+<option value="committer">committer</option>
+<option value="pickaxe">pickaxe</option>
+</select> <a href="https://git.distorted.org.uk/~mdw/mdwtools/search_help" title="search help">?</a> search:
+<input type="text" name="s"  />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div>
+</form>
+<div class="page_nav">
+summary | <a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/6d44932aa5c1786d1feb36ff0cb2b3402177b40d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/6d44932aa5c1786d1feb36ff0cb2b3402177b40d">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree">tree</a><br/>
+<br/>
+</div>
+<div class="title">&nbsp;</div>
+<table class="projects_list">
+<tr id="metadata_desc"><td>description</td><td>Various LaTeX packages</td></tr>
+<tr id="metadata_owner"><td>owner</td><td>Mark Wooding</td></tr>
+<tr id="metadata_lchange"><td>last change</td><td><span class="datetime">Mon, 8 Jun 2020 15:59:38 +0000</span> (16:59 +0100)</td></tr>
+<tr class="metadata_url"><td>URL</td><td>https://git.distorted.org.uk/~mdw/mdwtools</td></tr>
+<tr class="metadata_url"><td></td><td>git://git.distorted.org.uk/~mdw/mdwtools</td></tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog">shortlog</a>
+</div>
+<table class="shortlog">
+<tr class="dark">
+<td title="3 years ago"><i>2020-06-08</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/6d44932aa5c1786d1feb36ff0cb2b3402177b40d" title=".mdw-build.conf: Don't try `vpath' builds with this package.">.mdw-build.conf: Don&#39;t try `vpath&#39; builds with this... </a> <span class="refs"> <span class="head" title="heads/master"><a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/heads/master">master</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/6d44932aa5c1786d1feb36ff0cb2b3402177b40d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/6d44932aa5c1786d1feb36ff0cb2b3402177b40d">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/6d44932aa5c1786d1feb36ff0cb2b3402177b40d">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/6d44932aa5c1786d1feb36ff0cb2b3402177b40d.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/6d44932aa5c1786d1feb36ff0cb2b3402177b40d.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="3 years ago"><i>2020-06-08</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/bc0ae2eda4dc4b8e60d229300999c9cf07c59fee">Release 1.8.2.</a> <span class="refs"> <span class="tag indirect" title="tags/1.8.2"><a href="https://git.distorted.org.uk/~mdw/mdwtools/tag/refs/tags/1.8.2">1.8.2</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/bc0ae2eda4dc4b8e60d229300999c9cf07c59fee">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/bc0ae2eda4dc4b8e60d229300999c9cf07c59fee">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/bc0ae2eda4dc4b8e60d229300999c9cf07c59fee">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/bc0ae2eda4dc4b8e60d229300999c9cf07c59fee.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/bc0ae2eda4dc4b8e60d229300999c9cf07c59fee.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="3 years ago"><i>2020-06-08</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/ee658485c2f48cd94b2e934c750628a1c28389a3">debian/changelog: Delete trailing blank line.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/ee658485c2f48cd94b2e934c750628a1c28389a3">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/ee658485c2f48cd94b2e934c750628a1c28389a3">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/ee658485c2f48cd94b2e934c750628a1c28389a3">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/ee658485c2f48cd94b2e934c750628a1c28389a3.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/ee658485c2f48cd94b2e934c750628a1c28389a3.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="3 years ago"><i>2020-06-07</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/f76fbef37b2af3292764729f496f578037cdc314">sverb.dtx: Include the `\jobname&#39; in demo filenames.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/f76fbef37b2af3292764729f496f578037cdc314">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/f76fbef37b2af3292764729f496f578037cdc314">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/f76fbef37b2af3292764729f496f578037cdc314">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/f76fbef37b2af3292764729f496f578037cdc314.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/f76fbef37b2af3292764729f496f578037cdc314.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="3 years ago"><i>2020-06-07</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/d03425ae7b92642a8191def60419d91a0d309fb2">Makefile.m4: Fix dependencies for parallel building.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/d03425ae7b92642a8191def60419d91a0d309fb2">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/d03425ae7b92642a8191def60419d91a0d309fb2">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/d03425ae7b92642a8191def60419d91a0d309fb2">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/d03425ae7b92642a8191def60419d91a0d309fb2.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/d03425ae7b92642a8191def60419d91a0d309fb2.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="3 years ago"><i>2020-06-07</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/79d2ba13adadaf724f8daa40c464d1b07d980ab8">syntax.dtx: Disable ligatures in `\readupto&#39;.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/79d2ba13adadaf724f8daa40c464d1b07d980ab8">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/79d2ba13adadaf724f8daa40c464d1b07d980ab8">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/79d2ba13adadaf724f8daa40c464d1b07d980ab8">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/79d2ba13adadaf724f8daa40c464d1b07d980ab8.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/79d2ba13adadaf724f8daa40c464d1b07d980ab8.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="3 years ago"><i>2019-08-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/3aea29e218d22c6c102b4576f12968aea6bf13aa">Release 1.8.1.</a> <span class="refs"> <span class="tag indirect" title="tags/1.8.1"><a href="https://git.distorted.org.uk/~mdw/mdwtools/tag/refs/tags/1.8.1">1.8.1</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/3aea29e218d22c6c102b4576f12968aea6bf13aa">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/3aea29e218d22c6c102b4576f12968aea6bf13aa">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/3aea29e218d22c6c102b4576f12968aea6bf13aa">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/3aea29e218d22c6c102b4576f12968aea6bf13aa.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/3aea29e218d22c6c102b4576f12968aea6bf13aa.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="3 years ago"><i>2019-08-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/d3d35d4b9cd15420d2111264dab1977517b1d02e">Makefile.m4: Collect version using `auto-version&#39;.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/d3d35d4b9cd15420d2111264dab1977517b1d02e">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/d3d35d4b9cd15420d2111264dab1977517b1d02e">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/d3d35d4b9cd15420d2111264dab1977517b1d02e">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/d3d35d4b9cd15420d2111264dab1977517b1d02e.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/d3d35d4b9cd15420d2111264dab1977517b1d02e.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="3 years ago"><i>2019-08-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/6d6d46d23ef867934608b1362b3ae754e7af7156">Makefile.m4: Build PDF versions of the documents.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/6d6d46d23ef867934608b1362b3ae754e7af7156">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/6d6d46d23ef867934608b1362b3ae754e7af7156">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/6d6d46d23ef867934608b1362b3ae754e7af7156">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/6d6d46d23ef867934608b1362b3ae754e7af7156.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/6d6d46d23ef867934608b1362b3ae754e7af7156.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="3 years ago"><i>2019-08-02</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/d93764b338514894110ad0a7f51391da1862d9cc">Release 1.8.0.</a> <span class="refs"> <span class="tag indirect" title="tags/1.8.0"><a href="https://git.distorted.org.uk/~mdw/mdwtools/tag/refs/tags/1.8.0">1.8.0</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/d93764b338514894110ad0a7f51391da1862d9cc">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/d93764b338514894110ad0a7f51391da1862d9cc">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/d93764b338514894110ad0a7f51391da1862d9cc">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/d93764b338514894110ad0a7f51391da1862d9cc.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/d93764b338514894110ad0a7f51391da1862d9cc.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="3 years ago"><i>2019-08-02</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/e0464890d25b3299ff008d946e49d3fcf657694b">mdwref.dtx: Add a useful output-formatting hook.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/e0464890d25b3299ff008d946e49d3fcf657694b">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/e0464890d25b3299ff008d946e49d3fcf657694b">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/e0464890d25b3299ff008d946e49d3fcf657694b">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/e0464890d25b3299ff008d946e49d3fcf657694b.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/e0464890d25b3299ff008d946e49d3fcf657694b.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="7 years ago"><i>2016-01-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/9d809eaca2b424a34222f8912d58d476720ffa24">mdwtab.dtx: Fix group nesting in `smarray&#39;.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/9d809eaca2b424a34222f8912d58d476720ffa24">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/9d809eaca2b424a34222f8912d58d476720ffa24">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/9d809eaca2b424a34222f8912d58d476720ffa24">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/9d809eaca2b424a34222f8912d58d476720ffa24.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/9d809eaca2b424a34222f8912d58d476720ffa24.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="7 years ago"><i>2016-01-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/eafdddad07cf0a91ba07cbd9309a0a46e3bd00ac">Eliminate tabs from TeX input files.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/eafdddad07cf0a91ba07cbd9309a0a46e3bd00ac">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/eafdddad07cf0a91ba07cbd9309a0a46e3bd00ac">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/eafdddad07cf0a91ba07cbd9309a0a46e3bd00ac">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/eafdddad07cf0a91ba07cbd9309a0a46e3bd00ac.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/eafdddad07cf0a91ba07cbd9309a0a46e3bd00ac.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="7 years ago"><i>2015-11-17</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/88ddb950817e0413117789eaaee3752e9630453d" title="syntax.dtx: Allow decorative material following nonterminal name in `grammar'.">syntax.dtx: Allow decorative material following nonterm... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/88ddb950817e0413117789eaaee3752e9630453d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/88ddb950817e0413117789eaaee3752e9630453d">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/88ddb950817e0413117789eaaee3752e9630453d">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/88ddb950817e0413117789eaaee3752e9630453d.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/88ddb950817e0413117789eaaee3752e9630453d.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="7 years ago"><i>2015-10-06</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/7ef5ba2c0461a5ba964a46fd8e70ba9b6ba355a4">mdwtab.dtx: Cope when \if@leqno is frobbed dynamically.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/7ef5ba2c0461a5ba964a46fd8e70ba9b6ba355a4">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/7ef5ba2c0461a5ba964a46fd8e70ba9b6ba355a4">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/7ef5ba2c0461a5ba964a46fd8e70ba9b6ba355a4">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/7ef5ba2c0461a5ba964a46fd8e70ba9b6ba355a4.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/7ef5ba2c0461a5ba964a46fd8e70ba9b6ba355a4.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="7 years ago"><i>2015-10-04</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/mdwtools/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/7b2adc290673aa432bbbecd130473d38408961e4">configure.in: Automake is now pickier about ordering.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/7b2adc290673aa432bbbecd130473d38408961e4">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commitdiff/7b2adc290673aa432bbbecd130473d38408961e4">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/7b2adc290673aa432bbbecd130473d38408961e4">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/7b2adc290673aa432bbbecd130473d38408961e4.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/mdwtools/snapshot/7b2adc290673aa432bbbecd130473d38408961e4.zip">zip</a>)</td>
+</tr>
+<tr>
+<td colspan="4"><a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog">...</a></td>
+</tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/mdwtools/tags">tags</a>
+</div>
+<table class="tags">
+<tr class="dark">
+<td><i>3 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/bc0ae2eda4dc4b8e60d229300999c9cf07c59fee">1.8.2</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/tag/cbdea5ebd7c2b75bac33851b772ea356ff95d5fa">Release 1.8.2.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/mdwtools/tag/cbdea5ebd7c2b75bac33851b772ea356ff95d5fa">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/bc0ae2eda4dc4b8e60d229300999c9cf07c59fee">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/tags/1.8.2">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log/refs/tags/1.8.2">log</a></td>
+</tr><tr class="light">
+<td><i>3 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/3aea29e218d22c6c102b4576f12968aea6bf13aa">1.8.1</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/tag/9c8cbcf36c7351a4b34bb172cbd6e74acb820a0d">Release 1.8.1.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/mdwtools/tag/9c8cbcf36c7351a4b34bb172cbd6e74acb820a0d">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/3aea29e218d22c6c102b4576f12968aea6bf13aa">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/tags/1.8.1">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log/refs/tags/1.8.1">log</a></td>
+</tr><tr class="dark">
+<td><i>3 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/d93764b338514894110ad0a7f51391da1862d9cc">1.8.0</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/tag/38283b12514c45a0987d1d6b91474845a7a8c232">Release 1.8.0.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/mdwtools/tag/38283b12514c45a0987d1d6b91474845a7a8c232">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/d93764b338514894110ad0a7f51391da1862d9cc">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/tags/1.8.0">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log/refs/tags/1.8.0">log</a></td>
+</tr><tr class="light">
+<td><i>10 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/83b69571df4f07673f434e614301ed009e02ad98">1.7.0</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/tag/7842c4a8f387df8eeb4bc51949fce799dde2db0d">Release 1.7.0.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/mdwtools/tag/7842c4a8f387df8eeb4bc51949fce799dde2db0d">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/83b69571df4f07673f434e614301ed009e02ad98">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/tags/1.7.0">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log/refs/tags/1.7.0">log</a></td>
+</tr><tr class="dark">
+<td><i>unknown</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/f2c6689859d5c79335535136ec1e0e01dbc779c7">1.6.1</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/tag/79369ddbd0896605c91f7431fbeb5fb62294cfc3"></a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/mdwtools/tag/79369ddbd0896605c91f7431fbeb5fb62294cfc3">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/f2c6689859d5c79335535136ec1e0e01dbc779c7">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/tags/1.6.1">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log/refs/tags/1.6.1">log</a></td>
+</tr><tr class="light">
+<td><i>unknown</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/mdwtools/commit/6c8117560625549a95d0a41985b2416e2c00cbb0">1.6.0</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/mdwtools/tag/15211ce34d0c3a60f1ee98746dd97fdd52e21b77"></a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/mdwtools/tag/15211ce34d0c3a60f1ee98746dd97fdd52e21b77">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/commit/6c8117560625549a95d0a41985b2416e2c00cbb0">commit</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/tags/1.6.0">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log/refs/tags/1.6.0">log</a></td>
+</tr></table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/mdwtools/heads">heads</a>
+</div>
+<table class="heads">
+<tr class="dark">
+<td><i>7 weeks ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/heads/mdw/tangle">mdw/tangle</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/heads/mdw/tangle">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log/refs/heads/mdw/tangle">log</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/refs/heads/mdw/tangle">tree</a></td>
+</tr><tr class="light">
+<td><i>3 years ago</i></td>
+<td class="current_head"><a class="list name" href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/heads/master">master</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/mdwtools/shortlog/refs/heads/master">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/log/refs/heads/master">log</a> | <a href="https://git.distorted.org.uk/~mdw/mdwtools/tree/refs/heads/master">tree</a></td>
+</tr></table>
+<div class="page_footer">
+<div class="page_footer_text">Various LaTeX packages</div>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/mdwtools/rss" title="log RSS feed">RSS</a>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/mdwtools/atom" title="log Atom feed">Atom</a>
+</div>
+<script type="text/javascript" src="/gitweb/gitweb.js"></script>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_scad b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_scad
new file mode 100644
index 0000000000000000000000000000000000000000..af9c7dc5621ea7654a25a6598c4a0cd34dde64d4
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_scad
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<!-- git web interface version 2.11.0, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
+<!-- git core binaries version 2.11.0 -->
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+<meta name="generator" content="gitweb/2.11.0 git/2.11.0"/>
+<meta name="robots" content="index, nofollow"/>
+<title>mdw@git.distorted.org.uk Git - scad/summary</title>
+<base href="https://git.distorted.org.uk" />
+<link rel="stylesheet" type="text/css" href="/gitweb/gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="/local/gitweb.css"/>
+<link rel="alternate" title="scad - log - RSS feed" href="https://git.distorted.org.uk/~mdw/scad/rss" type="application/rss+xml" />
+<link rel="alternate" title="scad - log - RSS feed (no merges)" href="https://git.distorted.org.uk/~mdw/scad/rss?opt=--no-merges" type="application/rss+xml" />
+<link rel="alternate" title="scad - log - Atom feed" href="https://git.distorted.org.uk/~mdw/scad/atom" type="application/atom+xml" />
+<link rel="alternate" title="scad - log - Atom feed (no merges)" href="https://git.distorted.org.uk/~mdw/scad/atom?opt=--no-merges" type="application/atom+xml" />
+<link rel="shortcut icon" href="/gitweb/git-favicon.png" type="image/png" />
+</head>
+<body>
+<div class="page_header">
+<a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/gitweb/git-logo.png" width="72" /></a><a href="/~mdw/">~mdw</a> / <a href="https://git.distorted.org.uk/~mdw/scad">scad</a> / summary
+</div>
+<form method="get" action="https://git.distorted.org.uk/~mdw//scad" enctype="multipart/form-data"><div class="search">
+<input name="a" type="hidden" value="search" />
+<input name="h" type="hidden" value="HEAD" />
+<select name="st" >
+<option selected="selected" value="commit">commit</option>
+<option value="grep">grep</option>
+<option value="author">author</option>
+<option value="committer">committer</option>
+<option value="pickaxe">pickaxe</option>
+</select> <a href="https://git.distorted.org.uk/~mdw/scad/search_help" title="search help">?</a> search:
+<input type="text" name="s"  />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div>
+</form>
+<div class="page_nav">
+summary | <a href="https://git.distorted.org.uk/~mdw/scad/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/scad/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/scad/commit/e05980e366e948132d10acde1abd0de29b6dae8a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/scad/commitdiff/e05980e366e948132d10acde1abd0de29b6dae8a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/scad/tree">tree</a><br/>
+<br/>
+</div>
+<div class="title">&nbsp;</div>
+<table class="projects_list">
+<tr id="metadata_desc"><td>description</td><td>OpenSCAD models that I&#39;ve designed.</td></tr>
+<tr id="metadata_owner"><td>owner</td><td>Mark Wooding</td></tr>
+<tr id="metadata_lchange"><td>last change</td><td><span class="datetime">Wed, 15 Mar 2023 00:57:55 +0000</span> (<span class="atnight">00:57</span> +0000)</td></tr>
+<tr class="metadata_url"><td>URL</td><td>https://git.distorted.org.uk/~mdw/scad</td></tr>
+<tr class="metadata_url"><td></td><td>git://git.distorted.org.uk/~mdw/scad</td></tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/scad/shortlog">shortlog</a>
+</div>
+<table class="shortlog">
+<tr class="dark">
+<td title="3 months ago"><i>2023-03-15</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/scad/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/scad/commit/e05980e366e948132d10acde1abd0de29b6dae8a" title="discpick-tensioner.scad: Improved tensioning component with longer prongs.">discpick-tensioner.scad: Improved tensioning component... </a> <span class="refs"> <span class="head" title="heads/master"><a href="https://git.distorted.org.uk/~mdw/scad/shortlog/refs/heads/master">master</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/scad/commit/e05980e366e948132d10acde1abd0de29b6dae8a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/scad/commitdiff/e05980e366e948132d10acde1abd0de29b6dae8a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/scad/tree/e05980e366e948132d10acde1abd0de29b6dae8a">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/scad/snapshot/e05980e366e948132d10acde1abd0de29b6dae8a.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/scad/snapshot/e05980e366e948132d10acde1abd0de29b6dae8a.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="8 months ago"><i>2022-10-28</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/scad/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/scad/commit/5f1872e84d2cb5198dfc6b9b6214ae7836cd9e4a">Add a build system.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/scad/commit/5f1872e84d2cb5198dfc6b9b6214ae7836cd9e4a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/scad/commitdiff/5f1872e84d2cb5198dfc6b9b6214ae7836cd9e4a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/scad/tree/5f1872e84d2cb5198dfc6b9b6214ae7836cd9e4a">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/scad/snapshot/5f1872e84d2cb5198dfc6b9b6214ae7836cd9e4a.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/scad/snapshot/5f1872e84d2cb5198dfc6b9b6214ae7836cd9e4a.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="9 months ago"><i>2022-09-30</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/scad/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/scad/commit/bfe485ff99b7430ceb074c89e2aa2f5bfd256b2a">discpick-collar.scad: Successful print.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/scad/commit/bfe485ff99b7430ceb074c89e2aa2f5bfd256b2a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/scad/commitdiff/bfe485ff99b7430ceb074c89e2aa2f5bfd256b2a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/scad/tree/bfe485ff99b7430ceb074c89e2aa2f5bfd256b2a">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/scad/snapshot/bfe485ff99b7430ceb074c89e2aa2f5bfd256b2a.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/scad/snapshot/bfe485ff99b7430ceb074c89e2aa2f5bfd256b2a.zip">zip</a>)</td>
+</tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/scad/heads">heads</a>
+</div>
+<table class="heads">
+<tr class="dark">
+<td><i>3 months ago</i></td>
+<td class="current_head"><a class="list name" href="https://git.distorted.org.uk/~mdw/scad/shortlog/refs/heads/master">master</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/scad/shortlog/refs/heads/master">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/scad/log/refs/heads/master">log</a> | <a href="https://git.distorted.org.uk/~mdw/scad/tree/refs/heads/master">tree</a></td>
+</tr></table>
+<div class="page_footer">
+<div class="page_footer_text">OpenSCAD models that I&#39;ve designed.</div>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/scad/rss" title="log RSS feed">RSS</a>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/scad/atom" title="log Atom feed">Atom</a>
+</div>
+<script type="text/javascript" src="/gitweb/gitweb.js"></script>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_strayman b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_strayman
new file mode 100644
index 0000000000000000000000000000000000000000..f13ea8baee6a861cc7e7b2dc43ada5dc9be58d1e
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_strayman
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<!-- git web interface version 2.11.0, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
+<!-- git core binaries version 2.11.0 -->
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+<meta name="generator" content="gitweb/2.11.0 git/2.11.0"/>
+<meta name="robots" content="index, nofollow"/>
+<title>mdw@git.distorted.org.uk Git - strayman/summary</title>
+<base href="https://git.distorted.org.uk" />
+<link rel="stylesheet" type="text/css" href="/gitweb/gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="/local/gitweb.css"/>
+<link rel="alternate" title="strayman - log - RSS feed" href="https://git.distorted.org.uk/~mdw/strayman/rss" type="application/rss+xml" />
+<link rel="alternate" title="strayman - log - RSS feed (no merges)" href="https://git.distorted.org.uk/~mdw/strayman/rss?opt=--no-merges" type="application/rss+xml" />
+<link rel="alternate" title="strayman - log - Atom feed" href="https://git.distorted.org.uk/~mdw/strayman/atom" type="application/atom+xml" />
+<link rel="alternate" title="strayman - log - Atom feed (no merges)" href="https://git.distorted.org.uk/~mdw/strayman/atom?opt=--no-merges" type="application/atom+xml" />
+<link rel="shortcut icon" href="/gitweb/git-favicon.png" type="image/png" />
+</head>
+<body>
+<div class="page_header">
+<a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/gitweb/git-logo.png" width="72" /></a><a href="/~mdw/">~mdw</a> / <a href="https://git.distorted.org.uk/~mdw/strayman">strayman</a> / summary
+</div>
+<form method="get" action="https://git.distorted.org.uk/~mdw//strayman" enctype="multipart/form-data"><div class="search">
+<input name="a" type="hidden" value="search" />
+<input name="h" type="hidden" value="HEAD" />
+<select name="st" >
+<option selected="selected" value="commit">commit</option>
+<option value="grep">grep</option>
+<option value="author">author</option>
+<option value="committer">committer</option>
+<option value="pickaxe">pickaxe</option>
+</select> <a href="https://git.distorted.org.uk/~mdw/strayman/search_help" title="search help">?</a> search:
+<input type="text" name="s"  />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div>
+</form>
+<div class="page_nav">
+summary | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commit/aaa6f8c35e8cdbc5089abe865bf05e11dda958e6">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/aaa6f8c35e8cdbc5089abe865bf05e11dda958e6">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree">tree</a><br/>
+<br/>
+</div>
+<div class="title">&nbsp;</div>
+<table class="projects_list">
+<tr id="metadata_desc"><td>description</td><td>LaTeX document class for various documents</td></tr>
+<tr id="metadata_owner"><td>owner</td><td>Mark Wooding</td></tr>
+<tr id="metadata_lchange"><td>last change</td><td><span class="datetime">Mon, 8 Jun 2020 16:00:49 +0000</span> (17:00 +0100)</td></tr>
+<tr class="metadata_url"><td>URL</td><td>https://git.distorted.org.uk/~mdw/strayman</td></tr>
+<tr class="metadata_url"><td></td><td>git://git.distorted.org.uk/~mdw/strayman</td></tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/strayman/shortlog">shortlog</a>
+</div>
+<table class="shortlog">
+<tr class="dark">
+<td title="3 years ago"><i>2020-06-08</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/aaa6f8c35e8cdbc5089abe865bf05e11dda958e6" title=".mdw-build.conf: Don't try `vpath' builds with this package.">.mdw-build.conf: Don&#39;t try `vpath&#39; builds with this... </a> <span class="refs"> <span class="head" title="heads/master"><a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/heads/master">master</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/aaa6f8c35e8cdbc5089abe865bf05e11dda958e6">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/aaa6f8c35e8cdbc5089abe865bf05e11dda958e6">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/aaa6f8c35e8cdbc5089abe865bf05e11dda958e6">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/aaa6f8c35e8cdbc5089abe865bf05e11dda958e6.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/aaa6f8c35e8cdbc5089abe865bf05e11dda958e6.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="3 years ago"><i>2019-08-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/20d4967967cddbb26bdd155cf5e26cd2461724c5">Release 1.1.5.</a> <span class="refs"> <span class="tag indirect" title="tags/1.1.5"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/refs/tags/1.1.5">1.1.5</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/20d4967967cddbb26bdd155cf5e26cd2461724c5">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/20d4967967cddbb26bdd155cf5e26cd2461724c5">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/20d4967967cddbb26bdd155cf5e26cd2461724c5">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/20d4967967cddbb26bdd155cf5e26cd2461724c5.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/20d4967967cddbb26bdd155cf5e26cd2461724c5.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="3 years ago"><i>2019-08-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/54682c9b9affec159fb26c1cf23eb2ba3e0a1e53" title="debian/copyright: Switch to machine-readable copyright file.">debian/copyright: Switch to machine-readable copyright... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/54682c9b9affec159fb26c1cf23eb2ba3e0a1e53">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/54682c9b9affec159fb26c1cf23eb2ba3e0a1e53">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/54682c9b9affec159fb26c1cf23eb2ba3e0a1e53">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/54682c9b9affec159fb26c1cf23eb2ba3e0a1e53.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/54682c9b9affec159fb26c1cf23eb2ba3e0a1e53.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="3 years ago"><i>2019-08-24</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/2713c178e5a5445aff599f12a5a3f2c81bc1c5d1" title="strayman.dtx: Move left-side headers and footers into the margin.">strayman.dtx: Move left-side headers and footers into... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/2713c178e5a5445aff599f12a5a3f2c81bc1c5d1">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/2713c178e5a5445aff599f12a5a3f2c81bc1c5d1">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/2713c178e5a5445aff599f12a5a3f2c81bc1c5d1">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/2713c178e5a5445aff599f12a5a3f2c81bc1c5d1.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/2713c178e5a5445aff599f12a5a3f2c81bc1c5d1.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="3 years ago"><i>2019-08-07</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/580fe06e87e25a9d153540766a5f7c9dd33c9b37">Release 1.1.4.</a> <span class="refs"> <span class="tag indirect" title="tags/1.1.4"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/refs/tags/1.1.4">1.1.4</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/580fe06e87e25a9d153540766a5f7c9dd33c9b37">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/580fe06e87e25a9d153540766a5f7c9dd33c9b37">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/580fe06e87e25a9d153540766a5f7c9dd33c9b37">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/580fe06e87e25a9d153540766a5f7c9dd33c9b37.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/580fe06e87e25a9d153540766a5f7c9dd33c9b37.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="5 years ago"><i>2018-06-30</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/35f7eeda5f604a3a1272614f7c3634fe4459c76a" title="strayman.dtx: Forbid page breaks before lists attached to paragraphs.">strayman.dtx: Forbid page breaks before lists attached... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/35f7eeda5f604a3a1272614f7c3634fe4459c76a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/35f7eeda5f604a3a1272614f7c3634fe4459c76a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/35f7eeda5f604a3a1272614f7c3634fe4459c76a">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/35f7eeda5f604a3a1272614f7c3634fe4459c76a.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/35f7eeda5f604a3a1272614f7c3634fe4459c76a.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="5 years ago"><i>2018-06-22</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/e642ddb81feeb8056762575b02d26cb6efd9092f">Release 1.1.3.2.</a> <span class="refs"> <span class="tag indirect" title="tags/1.1.3.2"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/refs/tags/1.1.3.2">1.1.3.2</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/e642ddb81feeb8056762575b02d26cb6efd9092f">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/e642ddb81feeb8056762575b02d26cb6efd9092f">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/e642ddb81feeb8056762575b02d26cb6efd9092f">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/e642ddb81feeb8056762575b02d26cb6efd9092f.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/e642ddb81feeb8056762575b02d26cb6efd9092f.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="5 years ago"><i>2018-06-21</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/8a24a0f2daa29db373515002f0101df4fbac2154" title="debian/control: Add Build-Depends: ghostscript because `ps2pdf'.">debian/control: Add Build-Depends: ghostscript because... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/8a24a0f2daa29db373515002f0101df4fbac2154">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/8a24a0f2daa29db373515002f0101df4fbac2154">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/8a24a0f2daa29db373515002f0101df4fbac2154">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/8a24a0f2daa29db373515002f0101df4fbac2154.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/8a24a0f2daa29db373515002f0101df4fbac2154.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="5 years ago"><i>2018-06-21</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/9c3e8626aeeac67fcbdb629e930d5047b2d5946c" title="strayman.dtx (\part): Don't establish the label reference in a block.">strayman.dtx (\part): Don&#39;t establish the label referen... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/9c3e8626aeeac67fcbdb629e930d5047b2d5946c">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/9c3e8626aeeac67fcbdb629e930d5047b2d5946c">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/9c3e8626aeeac67fcbdb629e930d5047b2d5946c">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/9c3e8626aeeac67fcbdb629e930d5047b2d5946c.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/9c3e8626aeeac67fcbdb629e930d5047b2d5946c.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="7 years ago"><i>2016-05-05</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/fddb126af21406e22353db8a377b81a90244abe3">strayman.dtx: Whitespace fixes.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/fddb126af21406e22353db8a377b81a90244abe3">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/fddb126af21406e22353db8a377b81a90244abe3">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/fddb126af21406e22353db8a377b81a90244abe3">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/fddb126af21406e22353db8a377b81a90244abe3.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/fddb126af21406e22353db8a377b81a90244abe3.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="10 years ago"><i>2013-07-08</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/b40e3be3e44f20ca28cc17fc3fd23317e6ee9010" title="Actually arrange to distribute the Automake helper scripts.">Actually arrange to distribute the Automake helper... </a> <span class="refs"> <span class="tag indirect" title="tags/1.1.3.1"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/refs/tags/1.1.3.1">1.1.3.1</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/b40e3be3e44f20ca28cc17fc3fd23317e6ee9010">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/b40e3be3e44f20ca28cc17fc3fd23317e6ee9010">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/b40e3be3e44f20ca28cc17fc3fd23317e6ee9010">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/b40e3be3e44f20ca28cc17fc3fd23317e6ee9010.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/b40e3be3e44f20ca28cc17fc3fd23317e6ee9010.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="10 years ago"><i>2013-07-08</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/0ff6fe0fad5462b75328fc3da0b074a5aeba4042">.gitignore: Ignore `auto-version&#39; script.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/0ff6fe0fad5462b75328fc3da0b074a5aeba4042">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/0ff6fe0fad5462b75328fc3da0b074a5aeba4042">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/0ff6fe0fad5462b75328fc3da0b074a5aeba4042">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/0ff6fe0fad5462b75328fc3da0b074a5aeba4042.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/0ff6fe0fad5462b75328fc3da0b074a5aeba4042.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="11 years ago"><i>2012-05-05</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/a9e5961e0f27bf6e61fea17a1ff1042a3b7ff59d">Debianization!</a> <span class="refs"> <span class="tag indirect" title="tags/1.1.3"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/refs/tags/1.1.3">1.1.3</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/a9e5961e0f27bf6e61fea17a1ff1042a3b7ff59d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/a9e5961e0f27bf6e61fea17a1ff1042a3b7ff59d">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/a9e5961e0f27bf6e61fea17a1ff1042a3b7ff59d">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/a9e5961e0f27bf6e61fea17a1ff1042a3b7ff59d.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/a9e5961e0f27bf6e61fea17a1ff1042a3b7ff59d.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="11 years ago"><i>2012-04-10</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/36bc1cc40c76ec8e66ec72b6d18d041593cdda50">Build: version from Git.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/36bc1cc40c76ec8e66ec72b6d18d041593cdda50">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/36bc1cc40c76ec8e66ec72b6d18d041593cdda50">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/36bc1cc40c76ec8e66ec72b6d18d041593cdda50">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/36bc1cc40c76ec8e66ec72b6d18d041593cdda50.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/36bc1cc40c76ec8e66ec72b6d18d041593cdda50.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="11 years ago"><i>2012-04-10</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/deee9d1ff95901da3da1a8ce81b33126f2832175">Whitespace fixups.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/deee9d1ff95901da3da1a8ce81b33126f2832175">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/deee9d1ff95901da3da1a8ce81b33126f2832175">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/deee9d1ff95901da3da1a8ce81b33126f2832175">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/deee9d1ff95901da3da1a8ce81b33126f2832175.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/deee9d1ff95901da3da1a8ce81b33126f2832175.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="11 years ago"><i>2012-04-10</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/strayman/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/commit/e673b6d13629fcf620a440c13de6e6f2da44df1d">Generate Postscript and PDF versions of documents.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/commit/e673b6d13629fcf620a440c13de6e6f2da44df1d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/commitdiff/e673b6d13629fcf620a440c13de6e6f2da44df1d">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/e673b6d13629fcf620a440c13de6e6f2da44df1d">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/e673b6d13629fcf620a440c13de6e6f2da44df1d.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/strayman/snapshot/e673b6d13629fcf620a440c13de6e6f2da44df1d.zip">zip</a>)</td>
+</tr>
+<tr>
+<td colspan="4"><a href="https://git.distorted.org.uk/~mdw/strayman/shortlog">...</a></td>
+</tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/strayman/tags">tags</a>
+</div>
+<table class="tags">
+<tr class="dark">
+<td><i>3 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/strayman/commit/20d4967967cddbb26bdd155cf5e26cd2461724c5">1.1.5</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/tag/353b9d290e55ab09137ae658278b6eebc5844921">Release 1.1.5.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/353b9d290e55ab09137ae658278b6eebc5844921">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/strayman/commit/20d4967967cddbb26bdd155cf5e26cd2461724c5">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/tags/1.1.5">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log/refs/tags/1.1.5">log</a></td>
+</tr><tr class="light">
+<td><i>3 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/strayman/commit/580fe06e87e25a9d153540766a5f7c9dd33c9b37">1.1.4</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/tag/e25f20c1b7ce406c35b172bbd630b05b93bc8bae">Release 1.1.4.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/e25f20c1b7ce406c35b172bbd630b05b93bc8bae">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/strayman/commit/580fe06e87e25a9d153540766a5f7c9dd33c9b37">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/tags/1.1.4">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log/refs/tags/1.1.4">log</a></td>
+</tr><tr class="dark">
+<td><i>5 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/strayman/commit/e642ddb81feeb8056762575b02d26cb6efd9092f">1.1.3.2</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/tag/b667ed3792b2ec77da597cf38681715c578bd115">Release 1.1.3.2.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/b667ed3792b2ec77da597cf38681715c578bd115">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/strayman/commit/e642ddb81feeb8056762575b02d26cb6efd9092f">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/tags/1.1.3.2">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log/refs/tags/1.1.3.2">log</a></td>
+</tr><tr class="light">
+<td><i>10 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/strayman/commit/b40e3be3e44f20ca28cc17fc3fd23317e6ee9010">1.1.3.1</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/tag/aa4b45f1f7b0c8024310a175c3b655e910907c4c">Release 1.1.3.1.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/aa4b45f1f7b0c8024310a175c3b655e910907c4c">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/strayman/commit/b40e3be3e44f20ca28cc17fc3fd23317e6ee9010">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/tags/1.1.3.1">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log/refs/tags/1.1.3.1">log</a></td>
+</tr><tr class="dark">
+<td><i>11 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/strayman/commit/a9e5961e0f27bf6e61fea17a1ff1042a3b7ff59d">1.1.3</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/tag/fb121d1290acb22cfb500560f11a37608a6acddd">Release 1.1.3.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/fb121d1290acb22cfb500560f11a37608a6acddd">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/strayman/commit/a9e5961e0f27bf6e61fea17a1ff1042a3b7ff59d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/tags/1.1.3">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log/refs/tags/1.1.3">log</a></td>
+</tr><tr class="light">
+<td><i>11 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/strayman/commit/c3f26ad36fea70261b3a2d594cd47e4b0bb05415">1.1.2</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/tag/f2920f8233dce0415e8c5dc079c3434d1e06ed6b">Release 1.1.2.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/f2920f8233dce0415e8c5dc079c3434d1e06ed6b">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/strayman/commit/c3f26ad36fea70261b3a2d594cd47e4b0bb05415">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/tags/1.1.2">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log/refs/tags/1.1.2">log</a></td>
+</tr><tr class="dark">
+<td><i>11 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/strayman/commit/1ffa90443b7d571c1d2af00626db04dea063302d">1.1.0</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/strayman/tag/e888e9d01ce67f09daa9ff06cf04161816c32002">Release 1.1.0.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/strayman/tag/e888e9d01ce67f09daa9ff06cf04161816c32002">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/strayman/commit/1ffa90443b7d571c1d2af00626db04dea063302d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/tags/1.1.0">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log/refs/tags/1.1.0">log</a></td>
+</tr></table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/strayman/heads">heads</a>
+</div>
+<table class="heads">
+<tr class="dark">
+<td><i>2 months ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/heads/mdw/tangle">mdw/tangle</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/heads/mdw/tangle">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log/refs/heads/mdw/tangle">log</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/refs/heads/mdw/tangle">tree</a></td>
+</tr><tr class="light">
+<td><i>3 years ago</i></td>
+<td class="current_head"><a class="list name" href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/heads/master">master</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/strayman/shortlog/refs/heads/master">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/log/refs/heads/master">log</a> | <a href="https://git.distorted.org.uk/~mdw/strayman/tree/refs/heads/master">tree</a></td>
+</tr></table>
+<div class="page_footer">
+<div class="page_footer_text">LaTeX document class for various documents</div>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/strayman/rss" title="log RSS feed">RSS</a>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/strayman/atom" title="log Atom feed">Atom</a>
+</div>
+<script type="text/javascript" src="/gitweb/gitweb.js"></script>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_udpkey b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_udpkey
new file mode 100644
index 0000000000000000000000000000000000000000..f4524e5a1e6513b02fc72bf2406760279acae58a
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_udpkey
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<!-- git web interface version 2.11.0, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
+<!-- git core binaries version 2.11.0 -->
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+<meta name="generator" content="gitweb/2.11.0 git/2.11.0"/>
+<meta name="robots" content="index, nofollow"/>
+<title>mdw@git.distorted.org.uk Git - udpkey/summary</title>
+<base href="https://git.distorted.org.uk" />
+<link rel="stylesheet" type="text/css" href="/gitweb/gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="/local/gitweb.css"/>
+<link rel="alternate" title="udpkey - log - RSS feed" href="https://git.distorted.org.uk/~mdw/udpkey/rss" type="application/rss+xml" />
+<link rel="alternate" title="udpkey - log - RSS feed (no merges)" href="https://git.distorted.org.uk/~mdw/udpkey/rss?opt=--no-merges" type="application/rss+xml" />
+<link rel="alternate" title="udpkey - log - Atom feed" href="https://git.distorted.org.uk/~mdw/udpkey/atom" type="application/atom+xml" />
+<link rel="alternate" title="udpkey - log - Atom feed (no merges)" href="https://git.distorted.org.uk/~mdw/udpkey/atom?opt=--no-merges" type="application/atom+xml" />
+<link rel="shortcut icon" href="/gitweb/git-favicon.png" type="image/png" />
+</head>
+<body>
+<div class="page_header">
+<a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/gitweb/git-logo.png" width="72" /></a><a href="/~mdw/">~mdw</a> / <a href="https://git.distorted.org.uk/~mdw/udpkey">udpkey</a> / summary
+</div>
+<form method="get" action="https://git.distorted.org.uk/~mdw//udpkey" enctype="multipart/form-data"><div class="search">
+<input name="a" type="hidden" value="search" />
+<input name="h" type="hidden" value="HEAD" />
+<select name="st" >
+<option selected="selected" value="commit">commit</option>
+<option value="grep">grep</option>
+<option value="author">author</option>
+<option value="committer">committer</option>
+<option value="pickaxe">pickaxe</option>
+</select> <a href="https://git.distorted.org.uk/~mdw/udpkey/search_help" title="search help">?</a> search:
+<input type="text" name="s"  />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div>
+</form>
+<div class="page_nav">
+summary | <a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commit/266e54e16bdab10461daa17e754acfedf669d05a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/266e54e16bdab10461daa17e754acfedf669d05a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree">tree</a><br/>
+<br/>
+</div>
+<div class="title">&nbsp;</div>
+<table class="projects_list">
+<tr id="metadata_desc"><td>description</td><td>Transmit and receive cryptographic keys over UDP; useful during boot.</td></tr>
+<tr id="metadata_owner"><td>owner</td><td>Mark Wooding</td></tr>
+<tr id="metadata_lchange"><td>last change</td><td><span class="datetime">Thu, 18 Feb 2016 17:53:27 +0000</span> (17:53 +0000)</td></tr>
+<tr class="metadata_url"><td>URL</td><td>https://git.distorted.org.uk/~mdw/udpkey</td></tr>
+<tr class="metadata_url"><td></td><td>git://git.distorted.org.uk/~mdw/udpkey</td></tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/udpkey/shortlog">shortlog</a>
+</div>
+<table class="shortlog">
+<tr class="dark">
+<td title="7 years ago"><i>2016-02-18</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/266e54e16bdab10461daa17e754acfedf669d05a">Release 1.0.2.</a> <span class="refs"> <span class="head" title="heads/master"><a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/heads/master">master</a></span> <span class="tag indirect" title="tags/1.0.2"><a href="https://git.distorted.org.uk/~mdw/udpkey/tag/refs/tags/1.0.2">1.0.2</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/266e54e16bdab10461daa17e754acfedf669d05a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/266e54e16bdab10461daa17e754acfedf669d05a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/266e54e16bdab10461daa17e754acfedf669d05a">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/266e54e16bdab10461daa17e754acfedf669d05a.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/266e54e16bdab10461daa17e754acfedf669d05a.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="7 years ago"><i>2016-02-18</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/5c7e9df83788dcb1f8f57d88ce0a945fe44b4ca0">debian/control: Fix the Build-Depends.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/5c7e9df83788dcb1f8f57d88ce0a945fe44b4ca0">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/5c7e9df83788dcb1f8f57d88ce0a945fe44b4ca0">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/5c7e9df83788dcb1f8f57d88ce0a945fe44b4ca0">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/5c7e9df83788dcb1f8f57d88ce0a945fe44b4ca0.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/5c7e9df83788dcb1f8f57d88ce0a945fe44b4ca0.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="7 years ago"><i>2016-02-18</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/413e4264e7164a7474b4affa71c487b6ccc474a8" title="debian/source/format: Apparently I'm meant to have one of these.">debian/source/format: Apparently I&#39;m meant to have... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/413e4264e7164a7474b4affa71c487b6ccc474a8">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/413e4264e7164a7474b4affa71c487b6ccc474a8">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/413e4264e7164a7474b4affa71c487b6ccc474a8">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/413e4264e7164a7474b4affa71c487b6ccc474a8.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/413e4264e7164a7474b4affa71c487b6ccc474a8.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/c33ded254b17ed0b7871ec8ef08ddf447df08952">udpkey.c: Fix typos in commentary.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/c33ded254b17ed0b7871ec8ef08ddf447df08952">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/c33ded254b17ed0b7871ec8ef08ddf447df08952">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/c33ded254b17ed0b7871ec8ef08ddf447df08952">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/c33ded254b17ed0b7871ec8ef08ddf447df08952.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/c33ded254b17ed0b7871ec8ef08ddf447df08952.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/cb4edb9f61ee8a2b6b8a89f1069fec6d5a771c70" title="udpkey.1: Prepend a line telling man(1)'s that it should call eqn(1).">udpkey.1: Prepend a line telling man(1)&#39;s that it shoul... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/cb4edb9f61ee8a2b6b8a89f1069fec6d5a771c70">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/cb4edb9f61ee8a2b6b8a89f1069fec6d5a771c70">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/cb4edb9f61ee8a2b6b8a89f1069fec6d5a771c70">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/cb4edb9f61ee8a2b6b8a89f1069fec6d5a771c70.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/cb4edb9f61ee8a2b6b8a89f1069fec6d5a771c70.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/336b3767c33f397e1db883fc220c607ecb2d9e8d">udpkey.1: Fix misformatting in a syntax display.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/336b3767c33f397e1db883fc220c607ecb2d9e8d">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/336b3767c33f397e1db883fc220c607ecb2d9e8d">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/336b3767c33f397e1db883fc220c607ecb2d9e8d">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/336b3767c33f397e1db883fc220c607ecb2d9e8d.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/336b3767c33f397e1db883fc220c607ecb2d9e8d.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/b5491aaa8978c7adc42c7f758ddbed6263c67e3a">Release 1.0.1.</a> <span class="refs"> <span class="tag indirect" title="tags/1.0.1"><a href="https://git.distorted.org.uk/~mdw/udpkey/tag/refs/tags/1.0.1">1.0.1</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/b5491aaa8978c7adc42c7f758ddbed6263c67e3a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/b5491aaa8978c7adc42c7f758ddbed6263c67e3a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/b5491aaa8978c7adc42c7f758ddbed6263c67e3a">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/b5491aaa8978c7adc42c7f758ddbed6263c67e3a.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/b5491aaa8978c7adc42c7f758ddbed6263c67e3a.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/37b2b8ac141b664344365678b1606232cad3af25" title="debian/udpkey.keyscript: Don't send network setup chatter as key.">debian/udpkey.keyscript: Don&#39;t send network setup chatt... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/37b2b8ac141b664344365678b1606232cad3af25">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/37b2b8ac141b664344365678b1606232cad3af25">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/37b2b8ac141b664344365678b1606232cad3af25">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/37b2b8ac141b664344365678b1606232cad3af25.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/37b2b8ac141b664344365678b1606232cad3af25.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/f3d1f95d4aed8e1cd02046650c17dd7a7bdbd952" title="debian/udpkey.initramfs-hook: Ensure seed is not publicly readable.">debian/udpkey.initramfs-hook: Ensure seed is not public... </a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/f3d1f95d4aed8e1cd02046650c17dd7a7bdbd952">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/f3d1f95d4aed8e1cd02046650c17dd7a7bdbd952">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/f3d1f95d4aed8e1cd02046650c17dd7a7bdbd952">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/f3d1f95d4aed8e1cd02046650c17dd7a7bdbd952.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/f3d1f95d4aed8e1cd02046650c17dd7a7bdbd952.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/cfec381392ae1a5fb4ac0ffc010e3bc9154889c0">Makefile.am: Distribute the extra Debian files.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/cfec381392ae1a5fb4ac0ffc010e3bc9154889c0">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/cfec381392ae1a5fb4ac0ffc010e3bc9154889c0">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/cfec381392ae1a5fb4ac0ffc010e3bc9154889c0">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/cfec381392ae1a5fb4ac0ffc010e3bc9154889c0.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/cfec381392ae1a5fb4ac0ffc010e3bc9154889c0.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/92469bdf40b72f8faa63cb5fd7abcadcc663c110">Annotate `printf&#39;-like functions for better warnings.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/92469bdf40b72f8faa63cb5fd7abcadcc663c110">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/92469bdf40b72f8faa63cb5fd7abcadcc663c110">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/92469bdf40b72f8faa63cb5fd7abcadcc663c110">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/92469bdf40b72f8faa63cb5fd7abcadcc663c110.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/92469bdf40b72f8faa63cb5fd7abcadcc663c110.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/a2fd0b74b87c7d838333e331f4c76c5de8f958dc">udpkey.c: Missing newline in version string.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/a2fd0b74b87c7d838333e331f4c76c5de8f958dc">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/a2fd0b74b87c7d838333e331f4c76c5de8f958dc">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/a2fd0b74b87c7d838333e331f4c76c5de8f958dc">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/a2fd0b74b87c7d838333e331f4c76c5de8f958dc.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/a2fd0b74b87c7d838333e331f4c76c5de8f958dc.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/a5f873bee5d69f4f12160360ec9a756b7c1c907a">Use constant-time comparison for checking MAC tags.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/a5f873bee5d69f4f12160360ec9a756b7c1c907a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/a5f873bee5d69f4f12160360ec9a756b7c1c907a">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/a5f873bee5d69f4f12160360ec9a756b7c1c907a">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/a5f873bee5d69f4f12160360ec9a756b7c1c907a.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/a5f873bee5d69f4f12160360ec9a756b7c1c907a.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/46716e8f42305a5b622274ebe53bad13d3f54bab">udpkey.c: Fix format-string error.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/46716e8f42305a5b622274ebe53bad13d3f54bab">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/46716e8f42305a5b622274ebe53bad13d3f54bab">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/46716e8f42305a5b622274ebe53bad13d3f54bab">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/46716e8f42305a5b622274ebe53bad13d3f54bab.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/46716e8f42305a5b622274ebe53bad13d3f54bab.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="10 years ago"><i>2013-06-29</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/d07ca53230ccef4664ec4130f41463a54c694488">udpkey.1: Some more tweaks to the manpage.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/d07ca53230ccef4664ec4130f41463a54c694488">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/d07ca53230ccef4664ec4130f41463a54c694488">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/d07ca53230ccef4664ec4130f41463a54c694488">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/d07ca53230ccef4664ec4130f41463a54c694488.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/d07ca53230ccef4664ec4130f41463a54c694488.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="10 years ago"><i>2013-06-28</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/udpkey/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/commit/4adfd9ca68db08bc025ea8b973c492f2175b2673">.gitignore: Ignore the `autom4te.cache&#39; directory.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/commit/4adfd9ca68db08bc025ea8b973c492f2175b2673">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commitdiff/4adfd9ca68db08bc025ea8b973c492f2175b2673">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/4adfd9ca68db08bc025ea8b973c492f2175b2673">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/4adfd9ca68db08bc025ea8b973c492f2175b2673.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/udpkey/snapshot/4adfd9ca68db08bc025ea8b973c492f2175b2673.zip">zip</a>)</td>
+</tr>
+<tr>
+<td colspan="4"><a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog">...</a></td>
+</tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/udpkey/tags">tags</a>
+</div>
+<table class="tags">
+<tr class="dark">
+<td><i>7 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/udpkey/commit/266e54e16bdab10461daa17e754acfedf669d05a">1.0.2</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/tag/5b7c3af6e7b6398744d0975b17565db51c25617f">Release 1.0.2.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/udpkey/tag/5b7c3af6e7b6398744d0975b17565db51c25617f">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commit/266e54e16bdab10461daa17e754acfedf669d05a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/tags/1.0.2">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/log/refs/tags/1.0.2">log</a></td>
+</tr><tr class="light">
+<td><i>10 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/udpkey/commit/b5491aaa8978c7adc42c7f758ddbed6263c67e3a">1.0.1</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/tag/334a8821ad53204cb0671a789342ca1a6835f05d">Release 1.0.1.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/udpkey/tag/334a8821ad53204cb0671a789342ca1a6835f05d">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commit/b5491aaa8978c7adc42c7f758ddbed6263c67e3a">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/tags/1.0.1">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/log/refs/tags/1.0.1">log</a></td>
+</tr><tr class="dark">
+<td><i>10 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/udpkey/commit/247f344ab1dcb88890b92fd96258f8872f76acf8">1.0.0</a></td>
+<td><a class="list subject" href="https://git.distorted.org.uk/~mdw/udpkey/tag/8825ebf8d2a4b8deb8d3f2a9206a319b2437bd52">Release 1.0.0.</a></td>
+<td class="selflink"><a href="https://git.distorted.org.uk/~mdw/udpkey/tag/8825ebf8d2a4b8deb8d3f2a9206a319b2437bd52">tag</a></td>
+<td class="link"> | <a href="https://git.distorted.org.uk/~mdw/udpkey/commit/247f344ab1dcb88890b92fd96258f8872f76acf8">commit</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/tags/1.0.0">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/log/refs/tags/1.0.0">log</a></td>
+</tr></table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/udpkey/heads">heads</a>
+</div>
+<table class="heads">
+<tr class="dark">
+<td><i>7 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/heads/mdw/wip.crybaby.2016-05-05">mdw/wip.crybaby.2016-05-05</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/heads/mdw/wip.crybaby.2016-05-05">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/log/refs/heads/mdw/wip.crybaby.2016-05-05">log</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/refs/heads/mdw/wip.crybaby.2016-05-05">tree</a></td>
+</tr><tr class="light">
+<td><i>7 years ago</i></td>
+<td class="current_head"><a class="list name" href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/heads/master">master</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/heads/master">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/log/refs/heads/master">log</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/refs/heads/master">tree</a></td>
+</tr><tr class="dark">
+<td><i>9 years ago</i></td>
+<td><a class="list name" href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/heads/mdw/fwd-sec">mdw/fwd-sec</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/udpkey/shortlog/refs/heads/mdw/fwd-sec">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/log/refs/heads/mdw/fwd-sec">log</a> | <a href="https://git.distorted.org.uk/~mdw/udpkey/tree/refs/heads/mdw/fwd-sec">tree</a></td>
+</tr></table>
+<div class="page_footer">
+<div class="page_footer_text">Transmit and receive cryptographic keys over UDP; useful during boot.</div>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/udpkey/rss" title="log RSS feed">RSS</a>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/udpkey/atom" title="log Atom feed">Atom</a>
+</div>
+<script type="text/javascript" src="/gitweb/gitweb.js"></script>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_vmctl b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_vmctl
new file mode 100644
index 0000000000000000000000000000000000000000..2a18416370dcc4730d464e684d124e55805a4d90
--- /dev/null
+++ b/swh/lister/gitweb/tests/data/https_git.distorted.org.uk/~mdw_vmctl
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<!-- git web interface version 2.11.0, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
+<!-- git core binaries version 2.11.0 -->
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+<meta name="generator" content="gitweb/2.11.0 git/2.11.0"/>
+<meta name="robots" content="index, nofollow"/>
+<title>mdw@git.distorted.org.uk Git - vmctl/summary</title>
+<base href="https://git.distorted.org.uk" />
+<link rel="stylesheet" type="text/css" href="/gitweb/gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="/local/gitweb.css"/>
+<link rel="alternate" title="vmctl - log - RSS feed" href="https://git.distorted.org.uk/~mdw/vmctl/rss" type="application/rss+xml" />
+<link rel="alternate" title="vmctl - log - RSS feed (no merges)" href="https://git.distorted.org.uk/~mdw/vmctl/rss?opt=--no-merges" type="application/rss+xml" />
+<link rel="alternate" title="vmctl - log - Atom feed" href="https://git.distorted.org.uk/~mdw/vmctl/atom" type="application/atom+xml" />
+<link rel="alternate" title="vmctl - log - Atom feed (no merges)" href="https://git.distorted.org.uk/~mdw/vmctl/atom?opt=--no-merges" type="application/atom+xml" />
+<link rel="shortcut icon" href="/gitweb/git-favicon.png" type="image/png" />
+</head>
+<body>
+<div class="page_header">
+<a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/gitweb/git-logo.png" width="72" /></a><a href="/~mdw/">~mdw</a> / <a href="https://git.distorted.org.uk/~mdw/vmctl">vmctl</a> / summary
+</div>
+<form method="get" action="https://git.distorted.org.uk/~mdw//vmctl" enctype="multipart/form-data"><div class="search">
+<input name="a" type="hidden" value="search" />
+<input name="h" type="hidden" value="HEAD" />
+<select name="st" >
+<option selected="selected" value="commit">commit</option>
+<option value="grep">grep</option>
+<option value="author">author</option>
+<option value="committer">committer</option>
+<option value="pickaxe">pickaxe</option>
+</select> <a href="https://git.distorted.org.uk/~mdw/vmctl/search_help" title="search help">?</a> search:
+<input type="text" name="s"  />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div>
+</form>
+<div class="page_nav">
+summary | <a href="https://git.distorted.org.uk/~mdw/vmctl/shortlog">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/log">log</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/commit/95ec7b4d9cb014f12349fc193684baab0903fbf7">commit</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/commitdiff/95ec7b4d9cb014f12349fc193684baab0903fbf7">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/tree">tree</a><br/>
+<br/>
+</div>
+<div class="title">&nbsp;</div>
+<table class="projects_list">
+<tr id="metadata_desc"><td>description</td><td>Constrained VM management, via SSH.</td></tr>
+<tr id="metadata_owner"><td>owner</td><td>Mark Wooding</td></tr>
+<tr id="metadata_lchange"><td>last change</td><td><span class="datetime">Sat, 4 Apr 2015 12:36:59 +0000</span> (13:36 +0100)</td></tr>
+<tr class="metadata_url"><td>URL</td><td>https://git.distorted.org.uk/~mdw/vmctl</td></tr>
+<tr class="metadata_url"><td></td><td>git://git.distorted.org.uk/~mdw/vmctl</td></tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/vmctl/shortlog">shortlog</a>
+</div>
+<table class="shortlog">
+<tr class="dark">
+<td title="8 years ago"><i>2015-04-04</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/vmctl/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/vmctl/commit/95ec7b4d9cb014f12349fc193684baab0903fbf7">.ssh/Makefile: Add dependency on sshsvc.conf.</a> <span class="refs"> <span class="head" title="heads/master"><a href="https://git.distorted.org.uk/~mdw/vmctl/shortlog/refs/heads/master">master</a></span></span></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/vmctl/commit/95ec7b4d9cb014f12349fc193684baab0903fbf7">commit</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/commitdiff/95ec7b4d9cb014f12349fc193684baab0903fbf7">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/tree/95ec7b4d9cb014f12349fc193684baab0903fbf7">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/vmctl/snapshot/95ec7b4d9cb014f12349fc193684baab0903fbf7.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/vmctl/snapshot/95ec7b4d9cb014f12349fc193684baab0903fbf7.zip">zip</a>)</td>
+</tr>
+<tr class="light">
+<td title="9 years ago"><i>2013-09-03</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/vmctl/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/vmctl/commit/1724d7d6ca67cc3c484db19e23b3e27fa64bb3a5">.ssh: Generate the awful authorized_keys file.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/vmctl/commit/1724d7d6ca67cc3c484db19e23b3e27fa64bb3a5">commit</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/commitdiff/1724d7d6ca67cc3c484db19e23b3e27fa64bb3a5">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/tree/1724d7d6ca67cc3c484db19e23b3e27fa64bb3a5">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/vmctl/snapshot/1724d7d6ca67cc3c484db19e23b3e27fa64bb3a5.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/vmctl/snapshot/1724d7d6ca67cc3c484db19e23b3e27fa64bb3a5.zip">zip</a>)</td>
+</tr>
+<tr class="dark">
+<td title="10 years ago"><i>2012-08-26</i></td>
+<td class="author"><a class="list" href="https://git.distorted.org.uk/~mdw/vmctl/search?s=Mark+Wooding;st=author" title="Search for commits authored by Mark Wooding">Mark Wooding</a></td><td><a class="list subject" href="https://git.distorted.org.uk/~mdw/vmctl/commit/da13c8714dc32c5d493952b38825d3ad58e38635">Initial version.</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/vmctl/commit/da13c8714dc32c5d493952b38825d3ad58e38635">commit</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/commitdiff/da13c8714dc32c5d493952b38825d3ad58e38635">commitdiff</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/tree/da13c8714dc32c5d493952b38825d3ad58e38635">tree</a> | snapshot (<a href="https://git.distorted.org.uk/~mdw/vmctl/snapshot/da13c8714dc32c5d493952b38825d3ad58e38635.tar.gz">tar.gz</a> <a href="https://git.distorted.org.uk/~mdw/vmctl/snapshot/da13c8714dc32c5d493952b38825d3ad58e38635.zip">zip</a>)</td>
+</tr>
+</table>
+<div class="header">
+<a class="title" href="https://git.distorted.org.uk/~mdw/vmctl/heads">heads</a>
+</div>
+<table class="heads">
+<tr class="dark">
+<td><i>8 years ago</i></td>
+<td class="current_head"><a class="list name" href="https://git.distorted.org.uk/~mdw/vmctl/shortlog/refs/heads/master">master</a></td>
+<td class="link"><a href="https://git.distorted.org.uk/~mdw/vmctl/shortlog/refs/heads/master">shortlog</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/log/refs/heads/master">log</a> | <a href="https://git.distorted.org.uk/~mdw/vmctl/tree/refs/heads/master">tree</a></td>
+</tr></table>
+<div class="page_footer">
+<div class="page_footer_text">Constrained VM management, via SSH.</div>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/vmctl/rss" title="log RSS feed">RSS</a>
+<a class="rss_logo" href="https://git.distorted.org.uk/~mdw/vmctl/atom" title="log Atom feed">Atom</a>
+</div>
+<script type="text/javascript" src="/gitweb/gitweb.js"></script>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/swh/lister/gitweb/tests/test_lister.py b/swh/lister/gitweb/tests/test_lister.py
new file mode 100644
index 0000000000000000000000000000000000000000..1f784b1c90a8895235fc06dd5dc59a0f494cd6c9
--- /dev/null
+++ b/swh/lister/gitweb/tests/test_lister.py
@@ -0,0 +1,120 @@
+# Copyright (C) 2023 The Software Heritage developers
+# License: GNU General Public License version 3, or any later version
+# See top-level LICENSE file for more information
+
+import os
+from typing import List
+
+import pytest
+
+from swh.lister import __version__
+from swh.lister.gitweb.lister import GitwebLister
+from swh.lister.pattern import ListerStats
+
+MAIN_INSTANCE = "git.distorted.org.uk"
+MAIN_INSTANCE_URL = f"https://{MAIN_INSTANCE}/~mdw"
+
+
+def test_lister_gitweb_instantiate(swh_scheduler):
+    """Build a lister with either an url or an instance is supported."""
+    url = MAIN_INSTANCE_URL
+    lister = GitwebLister(swh_scheduler, url=url)
+    assert lister is not None
+    assert lister.url == url
+
+    assert GitwebLister(swh_scheduler, instance=MAIN_INSTANCE) is not None
+    assert lister is not None
+    assert lister.url == url
+
+
+def test_lister_gitweb_fail_to_instantiate(swh_scheduler):
+    """Build a lister without its url nor its instance should raise"""
+    # ... It will raise without any of those
+    with pytest.raises(ValueError, match="'url' or 'instance'"):
+        GitwebLister(swh_scheduler)
+
+
+def test_lister_gitweb_get_pages(requests_mock_datadir, swh_scheduler):
+    """Computing the number of pages scrapped during a listing."""
+    url = MAIN_INSTANCE_URL
+    lister_gitweb = GitwebLister(swh_scheduler, url=url)
+
+    expected_nb_origins = 7
+
+    repos: List[List[str]] = list(lister_gitweb.get_pages())
+    flattened_repos = sum(repos, [])
+    assert len(flattened_repos) == expected_nb_origins
+
+    for listed_url in flattened_repos:
+        assert listed_url["url"].startswith(url)
+
+
+def test_lister_gitweb_run(requests_mock_datadir, swh_scheduler):
+    """Gitweb lister nominal listing case."""
+
+    url = MAIN_INSTANCE_URL
+    lister_gitweb = GitwebLister(swh_scheduler, url=url)
+
+    stats = lister_gitweb.run()
+
+    expected_nb_origins = 7  # main page will get filtered out
+    assert stats == ListerStats(pages=1, origins=expected_nb_origins)
+
+    # test page parsing
+    scheduler_origins = swh_scheduler.get_listed_origins(
+        lister_gitweb.lister_obj.id
+    ).results
+    assert len(scheduler_origins) == expected_nb_origins
+
+    # test listed repositories
+    for listed_origin in scheduler_origins:
+        assert listed_origin.visit_type == "git"
+        assert listed_origin.url.startswith(url)
+        # Not parsed
+        assert listed_origin.last_update is None
+
+    # test user agent content
+    for request in requests_mock_datadir.request_history:
+        assert "User-Agent" in request.headers
+        user_agent = request.headers["User-Agent"]
+        assert "Software Heritage gitweb lister" in user_agent
+        assert __version__ in user_agent
+
+
+def test_lister_gitweb_get_pages_with_pages_and_retry(
+    requests_mock_datadir, requests_mock, datadir, mocker, swh_scheduler
+):
+    """Rate limited page are tested back after some time so ingestion can proceed."""
+    url = MAIN_INSTANCE_URL
+    with open(os.path.join(datadir, f"https_{MAIN_INSTANCE}/~mdw"), "rb") as page:
+        requests_mock.get(
+            url,
+            [
+                {"content": None, "status_code": 429},
+                {"content": None, "status_code": 429},
+                {"content": page.read(), "status_code": 200},
+            ],
+        )
+
+        lister_gitweb = GitwebLister(swh_scheduler, url=url)
+
+        mocker.patch.object(lister_gitweb.http_request.retry, "sleep")
+
+        pages: List[List[str]] = list(lister_gitweb.get_pages())
+        flattened_repos = sum(pages, [])
+        assert len(pages) == 1
+        assert len(flattened_repos) == 7
+
+
+def test_lister_gitweb_get_origin_from_repo_failing(
+    swh_scheduler, requests_mock_datadir
+):
+    """Instances whose summary does not return anything are filtered out."""
+    # This instance has some more origins which no longer returns their summary
+    lister_gitweb = GitwebLister(swh_scheduler, url=f"https://{MAIN_INSTANCE}/foobar")
+
+    stats = lister_gitweb.run()
+
+    # so they are filtered out, only the 7 we know are thus listed
+    expected_nb_origins = 7
+    assert stats == ListerStats(pages=1, origins=expected_nb_origins)
diff --git a/swh/lister/gitweb/tests/test_tasks.py b/swh/lister/gitweb/tests/test_tasks.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e5cc3436fd1d42eabeee2294ceb832f2c2f1308
--- /dev/null
+++ b/swh/lister/gitweb/tests/test_tasks.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2023 The Software Heritage developers
+# See the AUTHORS file at the top-level directory of this distribution
+# License: GNU General Public License version 3, or any later version
+# See top-level LICENSE file for more information
+
+from swh.lister.pattern import ListerStats
+
+
+def test_gitweb_lister_task(
+    swh_scheduler_celery_app, swh_scheduler_celery_worker, mocker
+):
+    # setup the mocked GitwebLister
+    lister = mocker.patch("swh.lister.gitweb.tasks.GitwebLister")
+    lister.from_configfile.return_value = lister
+    lister.run.return_value = ListerStats(pages=10, origins=500)
+
+    kwargs = dict(
+        url="https://git.gentoo.org/", instance="kernel", base_git_url=None, max_pages=1
+    )
+
+    res = swh_scheduler_celery_app.send_task(
+        "swh.lister.gitweb.tasks.GitwebListerTask",
+        kwargs=kwargs,
+    )
+    assert res
+    res.wait()
+    assert res.successful()
+
+    lister.from_configfile.assert_called_once_with(**kwargs)
+    lister.run.assert_called_once_with()
diff --git a/swh/lister/tests/test_cli.py b/swh/lister/tests/test_cli.py
index 19411c99c599b93d68079fb13f95e02f3a4d81a2..29a9a01baf19e83ab18ec22f623a60c56e4fdc44 100644
--- a/swh/lister/tests/test_cli.py
+++ b/swh/lister/tests/test_cli.py
@@ -42,6 +42,9 @@ lister_args = {
         "url": "https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/",
     },
     "pagure": {"instance": "pagure.io"},
+    "gitweb": {
+        "url": "https://git.distorted.org.uk/~mdw/",
+    },
 }