{"thread":{"id":"18226","subject":"Re: [freenet-dev] [PoC PATCH JGIT 0/2] Proof of concept code for Git Freenet transport","startedAt":"2009-03-09T11:35:38Z","lastAt":"2009-03-09T11:35:38Z","messageCount":1,"participants":["Daniel Cheng"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"107450","messageId":"ff6a9c820903090435n375b2e0ftde4c47f122d8132e@mail.gmail.com","threadId":"18226","inReplyTo":"1541866875@web.de","subject":"Re: [freenet-dev] [PoC PATCH JGIT 0/2] Proof of concept code for Git Freenet transport","fromName":"Daniel Cheng","fromEmail":"j16sdiz+freenet@gmail.com","sentAt":"2009-03-09T11:35:38Z","receivedAt":"2009-03-09T11:35:38Z","isPatch":true,"sender":{"key":"j16sdiz+freenet@gmail.com","avatar":"https://gravatar.com/avatar/3e796e8a156ee86e305bfc1fbe01608302554ee3b5fa7eb8d1213b8877bfcabd?d=mp&s=160"},"body":"On Mon, Mar 9, 2009 at 6:46 PM,  <bo-le@web.de> wrote:\n>> -----Ursprüngliche Nachricht-----\n>> Von: \"Daniel Cheng (aka SDiZ)\" <j16sdiz+freenet@gmail.com>\n>> Gesendet: 09.03.09 04:36:25\n>> An:  git@vger.kernel.org\n>> Betreff: [freenet-dev] [PoC PATCH JGIT 0/2] Proof of concept code for Git Freenet transport\n>\n>> Hi JGit / Freenet community,\n>>\n>> Here is some proof-of-concept code for Git-over-Freenet.\n>> I am sending this to see the feedback from communities.\n>>\n>> The code need some more cleanups, so it it is not ready for apply (yet).\n>>\n>> This is a real-life example\n>>\n>> Push:\n>>    $ git remote add fcp fcp://SSK@[my public key]^[my private key]/test.git\n>>    $ ./jgit push fcp refs/remotes/origin/stable:refs/heads/master\n>>\n>>  /ALTERNATIVLY/\n>>\n>>    Insert a bare repository under USK@<.....>/test.git/-1/\n>>\n>> Pull:\n>>  $ ./jgit clone fcp://SSK@[my public key]^[my private key]/test.git\n>\n> a pull from fproxy should be possible. so the average user can grab and build sources with an unpatched/regular git version\n> $ git clone http://127.0.0.1:8888/key/app.git  //grab & build a app\n> $ git clone http://127.0.0.1:8888/key/jFreeGit.git  //ha, bootstrap! grab & build the modified git for creating repos in freenet\n>\n>>\n>>\n>> To workaround the metadata update problem, this client translate the\n>> path seperator to \"-\", that means:\n>\n> you need to mangele path names properly, it may fail on names with '-' inside.\n\nIt doesn't matter -- we don't have to convert it back.\n\n>> On push:\n>>    objects/aa/bbbbbbbb   --> USK@..../test.git-objects-aa-bbbbbbb/-1/\n>>    refs/heads/xxx        --> USK@..../test.git-objects-ref-heads-xxx/-1/\n>>\n> why not 'USK@..../test.git/1/objects/aa/bbbbbbb' ?\n\nIn freenet,\nall files under   USK@..../test.git/1/* are packed in a zip file and\nmust be updated at once.\nIf we do this, we have to upload all pack files again on every push --\nthis is very bad.\n\nsee http://wiki.github.com/j16sdiz/egit-freenet for more detail reply.\n\n>> On pull:\n>>    To support uploading from jSite,\n>>     when we load the info/refs we first check USK@..../test.git-info-refs/-1/\n>>     if it is unavailiable, we would use USK@..../test.git/-1/info/refs\n>>\n>>    The \"traditional\" type (USK@..../test.git/-1/objects) repository is\n>>    always added as an alternative objects database. No other info/alternatives\n>>    are supported\n>>\n>> FIXME:\n>>  - How to store the private key of repository?\n> hg have a per repository config. was quite easy here ;)\n>\n>>    Currently, we use URI of form fcp://SSK@<public key>^<private key>/some-id\n>>    This is quite ugly. Could we use a per remote Config ? How can I get remote\n>>    name from transport?\n>>\n>>  - Make pushing async, could we?\n> inserting to an USK should be blocking until the toplevel chunk is in. this is a helpful tactic to hold the edition chain clean.\n"}]}