Re: git pack/unpack over bittorrent - works!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 3, 2010 at 8:41 PM, Nicolas Pitre <nico@xxxxxxxxxxx> wrote:

> I still think that if someone really want to apply the P2P principle à
> la BitTorrent to Git, then it should be based on the distributed
> exchange of _objects_ as I outlined in a previous email, and not file
> chunks like BitTorrent does.  The canonical Git _objects_ are fully
> defined, while their actual encoding may change.

ok - missed it.  let's go back... ah _ha_ - with this:

"Yep.  Instead of transferring packs, a BitTorrent-alike transfer should
be based on the transfer of _objects_.  Therefore you can make the
correspondance between file chunks in BitTorrent with objects in a Git
aware system.  So, when contacting a peer, you could negociate what is
the set of objects that the peer has that you don't, and vice versa.
Objects in Git are stable and immutable, and they all have a unique SHA1
signature.  And to optimize the negociation, the pack index content can
be used, first by exchanging the content of the first level
fan-out table and ignoring those entries that are equal.  This for each
peer."

ok, so, great!  it does actually seem that, despite us using different
terminologies, we're thinking along the same sort of lines.  i'm
marginally hampered by being unfamiliar with git, for which i
apologise.

so, when i mentioned extracting the objects from the index file of
"git pack-object", i was debating whether to then use that to
re-create the pack object (in some nebulous way) - that's sort-of the
same thing.  i was also debating whether to mention the idea of using
git pack-object to extract one and only one object ( there is likely a
more efficient way of doing that ).   but, yes: i was thinking of
making the vfs-layer expose individual objects, i just hadn't
mentioned it yet (and missed your earlier reply, nicolas, for which i
apologise).

btw the idea of parsing the fan-out table would not have occurred to
me in a miiiilllion years :)

 i'll take a look at that.  but whilst i'm doing that, the main
question i really need to know is: how do you get one single explicit
object out of git?

tia,

l.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]