On Wed, Mar 11, 2009 at 9:22 PM, Matthew Toseland
<[email protected]> wrote:
> On Wednesday 11 March 2009 00:51:53 Daniel Cheng wrote:
>> On Wed, Mar 11, 2009 at 7:33 AM, Matthew Toseland
>> <[email protected]> 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://s...@[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://s...@[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 --> u...@..../test.git-objects-aa-bbbbbbb/-1/
>> >> refs/heads/xxx --> u...@..../test.git-objects-ref-heads-xxx/-1/
>> >>
>> >> On pull:
>> >> To support uploading from jSite,
>> >> when we load the info/refs we first check
>> > u...@..../test.git-info-refs/-1/
>> >> if it is unavailiable, we would use u...@..../test.git/-1/info/refs
>> >>
>> >> The "traditional" type (u...@..../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
>> u...@..../xx.git-objects-packs-pack-xxxx.pack/1/ ,
>> it will try u...@..../xx.git/1/objects/xx/xxxxxx and then
>> u...@..../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.
>
> Well, if it is used rarely then it will fall out... dunno what the best way
> forward is...
>
In DVCS, everybody own the whole copy of repository.
If some old data fall out of the network, you can:
1) ask the repository owner to insert his repository with jSite.
egit-freenet will pull from that automatically.
/OR/
2) have any developer send you his repository.
As all commits are secure-hashed. You can verify the authentic
of repository easily . This is not as bad as you think.
--
_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl