On Thu, Apr 9, 2015 at 7:43 AM, Andy Bradford <amb-fos...@bradfords.org>
wrote:

> Thus said Matt Welland on Wed, 08 Apr 2015 21:07:00 -0700:
>
> > Would it be possible to detect and warn on update, status and push?
>
> What about pull??
>
> E.g. if I pull in new content  that creates a fork should the pull issue
> a warning?
>

Yes, I think a warning on seeing a fork in the timeline on pull is
important. Below is my rationale, just another stream-of-conciousness rant,
no loss if readers stop reading here :-)

Forks are, in part, a consequence of Fossils aggressive stance to
preserving data and I can see the arguments against blocking them at sync
time. However forks are potentially disruptive as they can linger silently
in the timeline of a busy project and create problems at a later time. The
compromise solution is to ensure that if there is a fork on the timeline
every effort is made to keep users informed over and over again until it is
resolved.

That said, I still think forks are an unnecessary evil in a highly
connected environment and that ideally Fossil would (optionally) prevent
them from ever happening. For genuine distributed use of course they would
be allowed. How many of the Fossil developers keep autosync on most of the
time? There was an article shared on this list where the author made the
point that the distributed quality of the new generation of SCM tools is
the least needed feature and actually not the key differentiator between
the old and new tools. This is a keen insight. If you didn't autosync then
your data isn't safe and you aren't co-developing to the fullest extent. If
you are using autosync then there is no fundamental technical need for a
fork to happen.

Imagine a use model for Fossil where there is no private database. You can
get very close to this today with multiple users accessing a central
.fossil by using the file:// transport. Out of the box this would be highly
resilient to forks as sqlite3 transactions would prevent overlapping
commits.

Based on my experience with Fossil in a high activity corporate
co-development environment the fork issue is a possible deal breaker. The
expectation of a user in this kind of environment is that if their commit
completes then it is in the timeline and visible to others. It would be
fine if the system told them that they had to resolve something and try to
commit again but for the commit to succeed but be essentially broken is not
tenable.

I think Fossil is fast converging on a near perfect SCM tool for both
distributed small teams and larger teams in a corporate close-coupled
environment. The remaining rough edges are forks, symlink handling and the
behavior of rm and mv (fixed already I think?).

I can't say it often enough, thanks to all who have made Fossil what it is
today!

Thanks,
>
> Andy
> --
> TAI64 timestamp: 400000005526904a
>
>
> _______________________________________________
> fossil-users mailing list
> fossil-users@lists.fossil-scm.org
> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
>
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to