tech-repository archive

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

Re: The essential problems of moving from CVS



On Mon, Jan 18, 2010 at 6:59 PM, D. Richard Hipp <drh%hwaci.com@localhost> 
wrote:
>
> On Jan 18, 2010, at 12:13 PM, bharder wrote:
>>
>> I've cc:'d drh, guessing he might be interested in at least watching
>> fossil (potentially) being considered for such a sizeable project as
>> NetBSD, and perhaps commenting on it's suitability.
>
>
> Greetings all NetBSDers.  I am Richard Hipp, the designer and maintainer of
> Fossil (and SQLite) and I would like to offer my views:
>
> Fossil was created by me for my needs.  It wasn't really designed to handle
> a project like NetBSD.  But on the other hand, as with many software
> projects, Fossil has ended up being used successfully in ways far different
> from what it was designed for.  Even I'm using it differently from what I
> original envisioned.  So Fossil might work well for NetBSD.  Or it might
> not.  I don't know your workflows, so I can't really say for sure.  What I
> can do is try to give you some insight into the differences between Fossil
> and other VCSes.
>
> Distributed VCSes (DVCSes) have many advantages over more traditional
> central-server VCSes like CVS and subversion.  No doubt you've already been
> over that ground.  But DVCSes also have some big disadvantages.  DVCSes
> encourage lots of branching.  And they force you to do lots of merging.  And
> DVCSes do not have a central place to go look for all the action.
>
> Fossil tries to take a middle approach.  Fossil allows you to have a central
[...]

Thanks for the detailed explanation!

From what I read, fossil looks quite similar to monotone!  Basically:

- monotone uses sqlite for internal storage.

- monotone doesn't encourage branching as much as git, as in there are
some well-defined public branches where different people commit to,
and then, within each branch, there can exist unnamed mini-branches
for concurrent development.  However, there is no central server: a
central server is defined by policy, not by the implementation.

- monotone is also slower than git, in part, due to extensive internal
sanity checks.  Your arguments supporting these are the same given to
support monotone ;)

Just mentioning these points in case you didn't know about monotone.

A couple of questions that you may want to answer here so that it is
easier for the readers to find the answer to:

- You mention that fossil differentiates between connected and
disconnected operation.  How does this work?  Do you need to tell it
explicitly that you are disconnected?

- How do you manage merges after having worked disconnectedly, e.g. on
a plane?  I really like monotone's approach of commit first, merge
later, as opposed to other system's sync first, merge in working copy.

Thanks!

-- 
Julio Merino


Home | Main Index | Thread Index | Old Index