On Thu, Apr 16, 2015 at 1:27 PM, Ron W <ronw.m...@gmail.com> wrote:

> On Thu, Apr 16, 2015 at 2:41 PM, Andy Bradford <amb-fos...@bradfords.org>
> wrote:
>
>> This document contains what Fossil considers a fork:
>>
>> https://www.fossil-scm.org/index.html/doc/trunk/www/branching.wiki
>
>
> Yes. And the _connotation_ of the term "fork" within the Fossil community
> is unintended/accidental commit to a parent commit with other child commits.
>
> My point is that Fossil uses the term "fork" differently from many other
> many other open source projects. Examples: "Devuan" is a fork of Debian,
> "Inkscape" is a fork of "Sodapodi", etc. Or, how Github uses it to mean a
> "contributor's clone".
>

Some thoughts:

If a unique term is required, how about calling an undesirable branch a
twig. ;)

More seriously, the Wikipedia article on forking is probably worth a read:
http://en.wikipedia.org/wiki/Fork_(software_development)

I would claim that github is the odd man out here, having appropriated a
term that historically meant something undesirable and changing it into an
intended desirable part of the software development process.  Mind you,
forking in a github sense doesn't have to mean "project branch with future
pull requests" though obviously that's how they intend it. A github fork is
really just a heavyweight branch, and until github was launched in 2008
(assuming their fork functionality was an original concept introduced at
launch) no one in the world used "fork" in this sense. Looking at the list
of DVCS projects on Wikipedia, it means every "notable" DVCS was introduced
prior to that usage (except for Veracity, which is apparently / arguably
dead anyway). I don't think github's success devolves on anyone else to
change their terminology any more than I think git's success means that
everyone should adopt their confusing hodge podge mass of commands &
options. In fact, from this point of view, github redefining terminology is
unsurprising given how I feel about git's use of terminology in places.

Given the traditional meaning of fork (an undesirable branch of development
that, if allowed to remain, limits future development options in some way),
I don't see that there is a real problem continuing to use the term fork.
Introducing a new non-obvious term just so there is distinct separation
between "fossil forks" and "github forks" seems to only complicate the
understanding of fossil.

Note that "undesirable branch of development" could apply to how fossil
uses fork, or how github might use fork in the case that the original
project never pulls anything back so the two projects diverge, or how BSDs
or emacs/xemacs forked deliberately.

Accidental head or accidental branch don't seem to apply if for no other
reason a fork *can* be deliberate. That's not the norm but --allow-fork
does exist as an option for those cases when fossil can detect a fork will
happen but to allow it anyway. I suspect most people don't type
--allow-fork accidentally (when they type it at all). :)

So, if we *must* have a unique term, I'd vote for twig as I've never heard
it used in a dvcs context and can't find such a reference via Google. Mind
you, if we started using twig there is nothing to stop github (or others)
from coming along and appropriating the terminology, so we could wind up
right back in this position seven years down the road.

Or we just continue to document what we mean when we use the term fork
(perhaps providing the extra text "two leaves on the same branch" or some
such when a fork warning is generated) and continue to provide the existing
tools to merge or rename.

-- 
Scott Robison
_______________________________________________
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