On Wed, Dec 19, 2012 at 12:06:05PM +0100, Remigiusz Modrzejewski wrote:
> 
> On Dec 18, 2012, at 14:42 , Gilles wrote:
> 
> >     Out of curiosity, if someone is well-versed with Fossil and the main
> > DVCS systems (Mercurial, Git), I was wondering how Fossil compares to
> > them, for a single user, a small team (up to 20-30), and big teams
> > (thousands).
> > 
> > http://en.wikipedia.org/wiki/List_of_revision_control_software#Distributed_model
> > 
> > Besides the fact that Fossil includes a wiki and a bug tracker, does
> > it offer features that would make it a better solution than the big
> > names?
> 
> Maybe I missed it skimming the thread, but I didn't notice anyone telling 
> about the big point.
> There is an attitude difference between Fossil and the other two, which put 
> in database terms would be:
> Fossil does replication, Git and Mercurial do sharding.
> 
> The big names have been created for huge teams, where people generally don't 
> want to be overwhelmed by tentative work done by others. Therefore they work 
> in isolation, issuing pull requests once the thing is done. Especially in Git 
> it's popular to compress all the commits to be pulled into one big commit. 
> But the important thing is the isolation.
> 
> It stands in stark contrast to Fossil's "everybody has a copy of everything". 
> In almost all the projects I've seen this is realized by another thing that 
> you don't see in the big names: developers autocommit to a central 
> repository. This renders Fossil basically a modern reincarnation of 
> Subversion, what is appealing to a lot of people. As a bonus you get, a 
> little dumbed down, installation of (distributed) Trac for free with every 
> repository.


This is related to having to keep in mind multiple graph HEADs. In fossil,
shared with two computers, you have as important references:
- computer 1:
  - checkout
  - branch head
- computer 2
  - checkout
  - branch head
But any "fossil sync" makes branch heads equal in both computers. So, basically,
3 easy points to take into account.


In git, you have as important references for two computers:
- computer 1
  - index
  - checkout
  - branch head
  - remote computer 2 head
- computer 2
  - index
  - checkout
  - branch head
  - remote computer 1 head

There are many commands to propagate from one ref to the other, but I find it 
very
cumbersome (fetch, pull, push, ...). No 'sync' available' to make things easy.
Not to mention that it needs also special operations to propagate the 'other' 
branches
to the remote places.

Regards,
Lluís.
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to