On Tue, Aug 31, 2010 at 11:29:02AM +1000, Nguyen Thai Ngoc Duy wrote: > On Tue, Aug 31, 2010 at 7:17 AM, Luke Kenneth Casson Leighton > <luke.leighton@xxxxxxxxx> wrote: > > On Mon, Aug 30, 2010 at 8:59 PM, <cdahlin@xxxxxxxxxx> wrote: > >> From: Casey Dahlin <cdahlin@xxxxxxxxxx> > >> > >> This isn't really what I'd normally call ready for public consumption, but > >> since there's been some minimal list chatter on a similar subject I figured I'd > >> put this out there early. > >> > >> git-hive is a peer to peer service for exchanging branches. When started it > >> runs a small daemon to publish your repository on a random (or specified) port. > >> Two hive daemons connected to oneanother can exchange branch lists and > >> introduce eachother to more hive daemons to widen the network. > > > > p.s. is there any location where, in diagrammatic form, the > > protocol's described? > > Also a short tutorial how to use it would be nice. > > I take it I can put different repositories (say wine.git and git.git) > in the hive. When I fetch git.git from the hive, it won't fetch > wine.git? First step to using hive is to set the project uri for your repo (may change this to a different mechanism later). casey@host_a$ git config --add hive.uri http://myproject.org This is what prevents the scenario you describe; repos with the same project URI are assumed to be compatible. It can be given as a command line argument to 'git hive start', but this way is much more usable. Next we start the service for our repo. casey@host_a$ git hive start --listen-port 21121 Normally the listen port is selected randomly. We specify it here so that other hive users can explicitly connect to us and "bootstrap" themselves into the hive network. Now to have someone join. nguyen@host_b$ git config --add hive.uri http://myproject.org nguyen@host_b$ git hive start host_a.com:21121 So from host_b we specify host_a's address and listen port, and we join the network. From here on out anyone who also connects to host_a will get host_b's (randomly selected) listen port automatically and be able to connect to it as well. So now our two peers can see each other. casey@host_a$ git hive show --branches Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> master for_casey --- nguyen@host_b$ git hive show --branches Casey Dahlin <cdahlin@xxxxxxxxxx> master stable v2.1 And we can exchange them casey@host_a$ git hive fetch nguyen for_casey casey@host_a$ git branch * master stable for_casey Note that the two arguments in fetch are a regex which searches through user IDs and a branch name, which is why I can abbreviate to just "nguyen" in all lower case. --CJD -- 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