On Mon, Mar 9, 2009 at 6:46 PM,  <bo-le at web.de> wrote:
>> -----Urspr?ngliche Nachricht-----
>> Von: "Daniel Cheng (aka SDiZ)" <j16sdiz+freenet at gmail.com>
>> Gesendet: 09.03.09 04:36:25
>> An: ?git at vger.kernel.org
>> 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 at ..../test.git-objects-aa-bbbbbbb/-1/
>> ? ?refs/heads/xxx ? ? ? ?--> USK at ..../test.git-objects-ref-heads-xxx/-1/
>>
> why not 'USK at ..../test.git/1/objects/aa/bbbbbbb' ?

In freenet,
all files under   USK at ..../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 at 
>> ..../test.git-info-refs/-1/
>> ? ? if it is unavailiable, we would use USK at ..../test.git/-1/info/refs
>>
>> ? ?The "traditional" type (USK at ..../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.

Reply via email to