For what it's worth, I agree with this. Loading the protocol and/or
"in-band" processing sounds like a horrible error to me. I'd suggest some
"offline" local processing, if anything. Something like:

$ fossil show-forks

That (if this doesn't exist already) will report potential forks that one
can investigate and resolve by the existing abilities we already have. I
think fossil has done a reasonable(ish) job staying simple, and I think
that will be the key to it's continued success.
On Apr 18, 2015 6:53 AM, "Richard Hipp" <d...@sqlite.org> wrote:

> Fossil has, for many years, detected potential forks prior to commit
> and warned about them, or within the past few years has disallowed the
> commit completely without the --allow-fork option.  If two users are
> committing concurrently, the fork detection fails, but even then the
> second user gets a message "**** warning: a fork has occurred *****".
> The problem arises when the second user does not notice, or chooses to
> ignore, this message and the situational awareness within the
> organization is such that nobody notices the fork plainly displayed on
> the timeline.  The check-in on the fork gets overlooked and fails to
> make it into the next release.
>
> Proposed solutions include denying the ability to commit or push a
> fork.  But doesn't that just make the problem worse?  We've already
> established that users are in the habit of ignoring scary fork
> warnings.  Wouldn't they also just ignore the fact that the commit or
> push failed?  With a fork, at least the content is safely on the
> server and can be easily recovered by anybody willing to take a moment
> to review the timeline.  But if the change never gets pushed, the
> content is only on the developer's machine, out of view and
> unrecoverable by anyone except the original developer.  And if it
> never gets committed, then the work might be lost even to the original
> developer.  How is that an improvement?
>
> Other proposed changes include more frequent nagging about forks.  The
> issue is less clear-cut, but I still worry that it might contribute to
> warning fatigue.  I go by the motto that you should always distrust
> any computer program that thinks it knows more than you do.  Constant
> nagging about forks seems to move Fossil in the direction of programs
> that I would not trust.  This is not to say that there shouldn't be
> warnings, but there needs to be balance.
>
> The "fossil update|co|checkout BRANCH" command takes you to the most
> recent check-in for BRANCH.  If BRANCH contains leaves that are not
> the most recent check-in, it seems like this would be a good time to
> issue a warning.  The command might even fail with the message that
> BRANCH is ambiguous and then provide a list of all possible SHA1
> values that BRANCH could resolve to, enabling the user to retry the
> command with an unambiguous SHA1 hash.
>
> Another approach would be to provide commands (such as "fossil forks")
> that actually show problems in the tree, for people who are actually
> interested - for example the release manager.  A web-version of
> "fossil forks" with graphical pictures of each fork would be nice to
> have.
>
> One other thing:  We ought to intentionally preserve several forks
> within the Fossil self-hosting repository, so that we always have test
> cases for the above mechanisms readily at hand.
> --
> D. Richard Hipp
> d...@sqlite.org
> _______________________________________________
> 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