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?
_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl