[darcs-users] "Static Gitit" site.

Trent W. Buck trentbuck at gmail.com
Tue Apr 21 01:12:54 UTC 2009


On Mon, Apr 20, 2009 at 08:49:12PM -0400, Gwern Branwen wrote:
> On Mon, Apr 20, 2009 at 8:39 PM, Trent W. Buck <trentbuck at gmail.com> wrote:
> > Daniel Carrera <daniel.carrera at theingots.org> writes:
> >
> >> Eric Kow wrote:
> >>> I think we should give darcsit (*) a second chance.
> >>
> >> Ok. But I'll mention that OpenOffice has had exactly the same problem
> >> for many years (but using CVS instead of Darcs) and they have never
> >> found a solution to the speed problems other than to "staticize" the
> >> website from time to time.
> >>
> >> My personal opinion is that running a website directly off of a SCM is
> >> a mistake. But oh well.
> >
> > ikiwiki works by serving static pages.  The static pages are recompiled
> > by a post-apply hook.  Thus, the cost of serving a page is low, but the
> > cost of an edit is high (particularly since several index pages need to
> > be recompiled).  I think browser-based editing is done by having a CGI
> > script that edits the working tree and then does a commit.
> >
> > I get the impression that for every GET request, gitit
> >
> >    1. Asks Darcs when the source document was last changed.
> >    2. If it is more recent than the cached HTML version,
> >       recompiles the cached HTML version.
> >    3. Serves the cached HTML version.
> >
> > I don't really see why this needs to be done for every READ, instead of
> > for every WRITE.  It seems to me that reads are orders of magnitude more
> > frequent than writes.
> 
> Suppose someone pushed a bunch of patches. How would checking only on
> writes through the web interface interact with that?

I don't understand the question.  The model I describe has four components:

 - a static httpd that serves the cached output real fast;
 - a web editing interface, which results in a VCS commit;
 - a VCS with a commit/apply hook; that calls
 - the compiler, which created/updates the cached output.

The compiler doesn't "see" any web interface at all.  It just sees
changes to the VCS repository.


More information about the darcs-users mailing list