On Sat, Mar 5, 2011 at 8:27 PM, Ron Wilson <[email protected]> wrote:

> On Fri, Mar 4, 2011 at 1:28 PM, Joerg Sonnenberger
> <[email protected]> wrote:
> > On Fri, Mar 04, 2011 at 01:06:46PM -0500, Ron Wilson wrote:
> >> So, Fossil automatically creates a new branch with not even an
> >> informational message saying it did that?
> >>
> >> That seems like a bug to me.
> >
> > It's not a branch. It's a fork. For more details, see:
>
> Regardless of terminology, some kind of notification should be given
> during the push (or pull) that results in the fork.
>

As we ponder this, a bigger question emerges:  What exactly is a fork?

For inputs, we have a directed acyclic graph (DAG) that gives the complete
history of the project.  Let us suppose that arrows of the graph point from
parent to child.  Each node is labeled with a branch.  In the general case,
the labeling is completely arbitrary - there are no rules about adjacent
nodes having related branch labels.  The push/pull can add new nodes and
edges to the DAG and change zero or more branch labels on existing nodes.
But the push/pull cannot delete or rearrange existing nodes or edges.  Given
the DAG before the push/pull, and the complete set of changes caused by the
push/pull, can you suggest an algorithm that will answer yes or no as to
whether or not a new fork was created?  Bonus points if you can give me a
name for the fork.

For some projects, the DAG contains over 100,000 nodes.  We'd like to
compute the answers above without having to pull nodes off the disk
corresponding to check-ins that happened many years ago.


-- 
D. Richard Hipp
[email protected]
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to