<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi John,<br>
    <br>
    <div class="moz-cite-prefix">On 03/31/2015 08:39 PM, John Keeping
      wrote:<br>
    </div>
    <blockquote cite="mid:20150331183919.GB2248@serenity.lan"
      type="cite">
      <pre wrap="">On Mon, Mar 30, 2015 at 07:15:27PM +0200, Nicolas Dely wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Do you think it is possible to only cache when HTTP is 200 OK? Other ideas?
</pre>
      </blockquote>
      <pre wrap="">
I don't think it will be easy to change the behaviour to cache only on
200 responses, and I'm not sure it's desirable to do so since the
process of determining that a result is an error may involve significant
work (e.g. loading packed refs or pack indexes).</pre>
    </blockquote>
    thank you for quick answer and feedback about amount of work
    required to cache only 200 responses ;-)<br>
    <br>
    <blockquote cite="mid:20150331183919.GB2248@serenity.lan"
      type="cite">
      <pre wrap="">I can see an argument for changing the default for "cache-static-ttl" to
a positive value, so that if we do cache an error result it will
eventually time out without needing another page to be written into that
cache slot, but I'm not sure I understand how you reviewboard server can
access files that have not yet been pushed to the Git server.  If you're
reviewing committed changes, shouldn't the review be posted by a hook on
the server, which would ensure that the commits are available before
reviewboard knows about them?
</pre>
    </blockquote>
    Regarding reviewboard, the tool works in a client/server
    architecture.<br>
    reviewboard client (rbtools) is supposed to send to reviewboard
    server local git patch/diff including full index of prev and new
    version. Server is looking for blobs belonging to prev version and
    apply patch chunks to them. Ie only blobs belonging to prev/origin
    version are required and must be pushed on git server to apply diff
    on them => pre commit reviews.<br>
    <br>
    issues happen when:<br>
    <ul>
      <li>new git repo: people do review request before pushing initial
        version => cache "no repository found"<br>
      </li>
      <li>missing intermediary version: people is updating or creating a
        review request an forget to push the prev version before
        submitting diff => cache "file not found"<br>
      </li>
      <li>reviewboard server is not allowed by gitolite (*) to read this
        new repo => cache "permission denied"</li>
    </ul>
    <p>(*) we have implemented several apache-perl modules so that cgit
      check user permission according to gitolite access ie ldap
      username authenticated as same permission as username.pub key<br>
    </p>
    <p>Nicolas<br>
    </p>
    <br>
  </body>
</html>