| Age | Commit message (Collapse) | Author |
|
Add `upload_pack` to the git module to (partially) implement the pack protocol,
then use this in gittorrentd instead of `git pack-objects`. This lets us
generate packs based off HEAD instead of packing the whole tree each time.
|
|
`git ls-remote` gives us the same info as `git-upload-pack`, but in an
easier to parse format. We can also share the code for interpreting
`git ls-remote` between git-remote-gittorrent and gittorrentd.
This also fixes the problem of `publish_mutable_key()` being called too
soon.
|
|
|
|
git-remote-gittorrent:
Only fetch a reference when git sends a "fetch" command. It knows when it
already has a commit and won't ask for it. If it asks for nothing, quit early.
Store references in a dictionary so that when asked for a specific sha, we can
find its reference quickly.
gittorrentd:
Add branches to `userProfile`, even if that sha has already been announced.
Fix the parsing of `git-upload-pack`'s output to not skip the line pointing to
`HEAD`.
|
|
git-remote-gittorrent:
Call `git ls-remote` without the 'HEAD' argument to get all references and
build a list of them. Use a different swarm for each ref and don't quit until
we have them all.
gittorrentd:
Parse the branch name out of references and store the sha's in
userProfile[reponame][branch] instead of userProfile[reponame].master.
|
|
|
|
|
|
this will still warn us, but at least not completely crash
|
|
|
|
|
|
|
|
|
|
|
|
|