server less collaborative project

Jens Alfke jens at mooseyard.com
Fri Apr 11 19:13:13 CDT 2008


On 11 Apr '08, at 8:26 AM, Sciss wrote:

> although it is stated everywhere that mercurial is
> "decentralized", in practically all tutorials and wikis people seem
> to assume that there _is_ a server that hosts the repository.

Decentralized doesn't necessarily mean there are _no_ servers; just  
that there isn't a _single_ server. I think it's pretty common for  
people working on a common project to keep their own repos on their  
web servers, to make it easier for others to access their work.  
(Everyone has some web space somewhere, and hgweb.cgi is easy to set  
up.)

But sure, you can use Mercurial with no servers, by emailing patches.  
I just haven't done it myself. It's less wieldy because email isn't  
interactive, so Mercurial can't look at both repositories and decide  
which changes should be sent. Instead you have to figure that out  
manually based on what revisions you know the other people already have.

First, I don't think you need to keep two local repositories per  
person. In a small project you can probably just use one.

> B$ hg bundle ../changes2.hg	// must be before push, otherwise it
> fails with an error?!

I think you should reread the docs for bundles. Just from the 'hg help  
bundle' text:
     If no destination repository is specified the destination is
     assumed to have all the nodes specified by one or more --base
     parameters.  To create a bundle containing all changesets, use
     --all (or --base null).
Since you're neither providing a destination nor a --base, I think it  
defaults to using the 'upstream' repository as the base. So yeah,  
after you push, there aren't any changes relative to that and you get  
nothing. Makes sense.

If you want to bundle up the last revision, specify a --base with the  
previous revision number. Though actually what you want as a base, for  
email, is the last revision that everyone else has, which would  
probably be the last revision from someone else that you unbundled  
into your repo.

—Jens
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1875 bytes
Desc: not available
Url : http://selenic.com/pipermail/mercurial/attachments/20080411/2a3e2f4b/attachment.bin 


More information about the Mercurial mailing list