10

Recently I've found the project git2html: git2html is a simple git web interface. Unlike other web interfaces, git2html does not generate content dynamically: instead of using a CGI script, it generates static HTML pages.

My questions is simple. Do you know other projects for Git, Mercurial or Darcs with similar goals?. I'm interested in static web frontends for these DVCS but is fair if you want to comment other projects for different open source DVCS.

Rufo El Magufo
  • 686
  • 6
  • 19
  • Just one question: why? :) Due to its distributed nature the load on a DVCS server is pretty low. – Laurens Holst May 30 '12 at 13:46
  • @LaurensHolst static sites are more "fire and forget" than dynamic sites, since their only attack vector is the Web server. Dynamic sites require a steady stream of security updates, either for the site's code or the underlying language/interpreter. – Warbo May 07 '15 at 12:34

4 Answers4

6

The equivalent for Mercurial is the site extension.

The extension generates a set of static HTML pages where you can browse commit messages, diffs, etc. They are similar to the built-in webserver you start with hg serve, but they are static.

You can also hg clone from such a site. This is not because of the extension, but because Mercurial can clone from any web-accessible .hg directory.

Martin Geisler
  • 72,968
  • 25
  • 171
  • 229
  • 1
    The site extension also supports direct FTP upload which transfers only the history for changed files. It’s not perfect (might miss a file at times when the commits and uploads fire faster than the clock accuracy of the ftp file listing, which then requires the --force flag to reupload everything), but it works quite nicely most of the time. And with a nice post-push hook, it’s automatic :) – Arne Babenhauserheide May 31 '12 at 15:32
  • 1
    The main difference from git hosting solutions is that you can just clone from the same URL your browse - und just browse the same URL you pull updates from. That’s an elegance I like a lot in Mercurial (hg serve allows the same). – Arne Babenhauserheide May 31 '12 at 15:35
2

Mercurial has a built-in ability to access a static repository. If a .hg repo is in a static http server's web root it can be cloned from (albeit slowly). Granted that's not a human-friendly UI, but once folks can clone they can do anything they want locally using hte hg command line tool or hg serve locally.

Ry4an Brase
  • 78,112
  • 7
  • 148
  • 169
2

Not exactly what you asked for, but if server load is the concern, the http://blitiri.com.ar/p/darcsweb/ CGI script caches rendered pages as static html files after the first viewing, so performs pretty well.

Simon Michael
  • 2,278
  • 1
  • 18
  • 21
1

I didn't find other similar project, and coming from a "big enterprise" environment, I can see how this approach is likely to not scale well when confronted with:

  • numerous repositories
  • large history (vest number of commits/ branches / tags)

A similar approach (in term of extracting the necessary information and processing it) is used by static analysis tools like Sonar which has large disk space requirements.
That doesn't scale well either.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • 2
    Of course, solutions similar to git2html don't scale with medium-big repos. I know :) . This is the typical problem of this type of applications. – Rufo El Magufo May 28 '12 at 01:11