On Wed, Mar 11, 2009 at 7:33 AM, Matthew Toseland
<toad at amphibian.dyndns.org> wrote:
> On Monday 09 March 2009 03:36:03 Daniel Cheng (aka SDiZ) 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.
>>
>> 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 at ..../test.git-objects-aa-bbbbbbb/-1/
>> ? ?refs/heads/xxx ? ? ? ?--> USK at ..../test.git-objects-ref-heads-xxx/-1/
>>
>> 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?
>> ? ?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?
>
> Very nice. To be clear, the "alternative object repository" is what you get
> when you insert the whole thing with jSite? Which it is recommended you do
> occasionally for longevity?

"alternative object repository" is a git term (and most git user never
use, or even heard about it)
Basically, if it can't find an object in
USK at ..../xx.git-objects-packs-pack-xxxx.pack/1/ ,
it will try USK at ..../xx.git/1/objects/xx/xxxxxx  and then
USK at ..../xx.git/1/objects/packs/pack-xxxx.pack/ .

I think we should use this only _only_ when we are initializing a
large repository,
or try to recover from file fall out from the network.

. 

Reply via email to