Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [freenet-dev] [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 6:46 PM,  [off-list ref] wrote:
quoted
-----Ursprüngliche Nachricht-----
Von: "Daniel Cheng (aka SDiZ)" [off-list ref]
Gesendet: 09.03.09 04:36:25
An:  git@vger.kernel.org
Betreff: [freenet-dev] [PoC PATCH JGIT 0/2] Proof of concept code for Git Freenet transport
quoted
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
quoted

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.
quoted
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.
quoted
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 ;)
quoted
   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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help