On Mon, Mar 9, 2009 at 6:46 PM, <bo-le@xxxxxx> wrote: >> -----Ursprüngliche Nachricht----- >> Von: "Daniel Cheng (aka SDiZ)" <j16sdiz+freenet@xxxxxxxxx> >> Gesendet: 09.03.09 04:36:25 >> An: git@xxxxxxxxxxxxxxx >> Betreff: [freenet-dev] [PoC PATCH JGIT 0/2] Proof of concept code for Git Freenet transport > >> 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. >> >> 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 > > a pull from fproxy should be possible. so the average user can grab and build sources with an unpatched/regular git version > $ git clone http://127.0.0.1:8888/key/app.git //grab & build a app > $ git clone http://127.0.0.1:8888/key/jFreeGit.git //ha, bootstrap! grab & build the modified git for creating repos in freenet > >> >> >> To workaround the metadata update problem, this client translate the >> path seperator to "-", that means: > > you need to mangele path names properly, it may fail on names with '-' inside. It doesn't matter -- we don't have to convert it back. >> On push: >> objects/aa/bbbbbbbb --> USK@..../test.git-objects-aa-bbbbbbb/-1/ >> refs/heads/xxx --> USK@..../test.git-objects-ref-heads-xxx/-1/ >> > why not 'USK@..../test.git/1/objects/aa/bbbbbbb' ? In freenet, all files under USK@..../test.git/1/* are packed in a zip file and must be updated at once. If we do this, we have to upload all pack files again on every push -- this is very bad. see http://wiki.github.com/j16sdiz/egit-freenet for more detail reply. >> 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? > hg have a per repository config. was quite easy here ;) > >> 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? > inserting to an USK should be blocking until the toplevel chunk is in. this is a helpful tactic to hold the edition chain clean. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html