Re: [PoC PATCH JGIT 0/2] Proof of concept code for Git Freenet transport
From: Daniel Cheng <hidden>
Date: 2016-06-15 22:46:21
On Mon, Mar 9, 2009 at 11:36 AM, Daniel Cheng (aka SDiZ) [off-list ref] wrote:
Hi JGit / Freenet community, Here is some proof-of-concept code for Git-over-Freenet. I am sending this to see the feedback from communities.
Sorry, all. The code I have posted wasn't work. (the pack file is missing on push, only idx files are pushed) The new, fixed code is now available at http://github.com/j16sdiz/egit-freenet/ Please use this repository if you want to actually try it.
The code need some more cleanups, so it it is not ready for apply (yet). This is a real-life example Push: $ git remote add fcp fcp://SSK@[my public key]^[my private key]/test.git $ ./jgit push fcp refs/remotes/origin/stable:refs/heads/master /ALTERNATIVLY/ Insert a bare repository under USK@<.....>/test.git/-1/ Pull: $ ./jgit clone fcp://SSK@[my public key]^[my private key]/test.git To workaround the metadata update problem, this client translate the path seperator to "-", that means: On push: objects/aa/bbbbbbbb --> USK@..../test.git-objects-aa-bbbbbbb/-1/ refs/heads/xxx --> USK@..../test.git-objects-ref-heads-xxx/-1/ On pull: To support uploading from jSite, when we load the info/refs we first check USK@..../test.git-info-refs/-1/ if it is unavailiable, we would use USK@..../test.git/-1/info/refs The "traditional" type (USK@..../test.git/-1/objects) repository is always added as an alternative objects database. No other info/alternatives are supported FIXME: - How to store the private key of repository? Currently, we use URI of form fcp://SSK@<public key>^<private key>/some-id This is quite ugly. Could we use a per remote Config ? How can I get remote name from transport? - Make pushing async, could we?