tag:blogger.com,1999:blog-4401555280825766585.post2337314365439785024..comments2023-07-21T04:50:56.062-04:00Comments on Life of a Computer Scientist: GitFarm source code?Likai Liuhttp://www.blogger.com/profile/06372207357661600589noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-4401555280825766585.post-15593166120053302992010-09-05T06:02:45.097-04:002010-09-05T06:02:45.097-04:00I think gitfarm uses WebDAV for access. Their push...I think gitfarm uses WebDAV for access. Their push and pull addresses uses HTTP://... so that's the only logical explanation.<br /><br />An implementation of WebDAV for AppEngine can be found here:<br />http://code.google.com/p/gae-webdav/<br /><br />However, it's only possible to upload files smaller than 10 MiB, according to [1] and [2] (Request size max 10 MiB, request duration max 30s).<br /><br />You might think that most git projects doesn't have files larger than 10 MiB, however, git can compress stuff into pack files. For instance a checkout of qt has only only pack file size 320 MiB.<br /><br />And no, you can't upload more than 10 MiB unless, you're using blobstore, see [3].<br />Maybe it's possible to do a 307 redirect on a WebDAV PUT request, but I somehow doubt it.<br /> - Perhaps I should try it out someday :)<br /><br />Anyway, if blobstore can't be used, you can be sure than it will work for repositories larger than 10 MiB. And if users suddenly decided to run "git gc; git push" everything may suddenly break (Correct me if I'm wrong).<br /><br />[1] http://code.google.com/appengine/docs/java/runtime.html#Quotas_and_Limits<br />[2] http://code.google.com/appengine/docs/python/runtime.html#Quotas_and_Limits<br />[3] http://code.google.com/appengine/docs/python/blobstore/overview.htmlJonas Finnemann Jensenhttps://www.blogger.com/profile/10864775681822449392noreply@blogger.comtag:blogger.com,1999:blog-4401555280825766585.post-41087728822085684472010-07-22T21:59:21.407-04:002010-07-22T21:59:21.407-04:00I'd seen JGit but not having an in-depth knowl...I'd seen JGit but not having an in-depth knowledge of Git implementations I'd assumed it was solely a client-side library, so thanks for putting me on to it again. (I'm a Java dev, so I'll be able to navigate around the code). <br><br />Just to throw a bone to those guys getting snake eyes from GitFarm, there is also a Python-based Git implementation, which, from the docs, looks as though it also implements the Git server logic. It can be found at:<br><br />http://samba.org/~jelmer/dulwich/<br /><br><br />And if they look/search real closely, it is possible to store files up to 2gb each on GAE using a GAE/Python API (I could tell, but, hey, they'll feel better finding it for themselves...really...)Big Richhttps://www.blogger.com/profile/06875271627572395373noreply@blogger.com