Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Aug 2011 20:39:11 -0700
From:      perryh@pluto.rain.com
To:        philip@freebsd.org
Cc:        vadim_nuclight@mail.ru, freebsd-arch@freebsd.org
Subject:   Re: Official git export
Message-ID:  <4e5c5b5f.moT7dLemOuteQJ5T%perryh@pluto.rain.com>
In-Reply-To: <3420B331-C697-468A-80BA-B31C33804710@freebsd.org>
References:  <35765857-1314243257-cardhu_decombobulator_blackberry.rim.net-329610575-@b2.c15.bise7.blackberry> <CAJ-Vmo=v0UkQarauKrvWKdjMTC81BwXmyhU__rnaQeL3z45L-g@mail.gmail.com> <slrnj5ddgp.4ck.vadim_nuclight@kernblitz.nuclight.avtf.net> <CAMBSHm8uX45k0M4on=5Cpw_CKoddA=4oJSNXpH7dGPt=Vy2HOw@mail.gmail.com> <alpine.BSF.2.00.1108261000040.48200@fledge.watson.org> <slrnj5lc58.jd1.vadim_nuclight@kernblitz.nuclight.avtf.net> <4e5ba9c3.bzHIw1KEy8R2QcK7%perryh@pluto.rain.com> <3420B331-C697-468A-80BA-B31C33804710@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Philip Paeps <philip@freebsd.org> wrote:
> On 29 Aug 2011, at 17:01, perryh@pluto.rain.com wrote:
> > Vadim Goncharov <vadim_nuclight@mail.ru> wrote:
> >> May be FreeBSD should really write it's own VCS, just as Git was
> >> modelled after proprietary BitKeeper?..
> > 
> > Good luck getting agreement on what to model it on :)
> > 
> > Personally I would suggest ClearCase as a model, but that's
> > largely because I'm familiar with it.
>
> Wait...  you're familiar with ClearCase and you want something
> that's modelled like it?  Most people familiar with ClearCase
> consider it to be a dire warning of what a VCS can become, not
> an example. :)
>
> I think any system where the server has to keep track of every
> client's files is pretty much obsolete in 2011.  It scales
> unbelievably poorly.

The VOB server does keep track of every view's[1] checkouts, but
I consider that a very low-level implementation detail -- there's
no reason in principle why that record couldn't be kept in the view
instead of in the VOB.  (In a distributed system, which is what
FreeBSD needs, checkout records _can't_ be maintained centrally.)

What I'm advocating is the usage experience.  Things like:

* Anyone can create a branch, and no one else will be aware of it
  unless they go looking for it, but all branches are peers.

* Checkout, editing, and checkin of directories follows the same
  workflow as files.

* Elements (files, directories) can be moved from one directory to
  another without losing history.  The move is initially visible
  only on the branch where it is performed, becoming visible on
  other branches via merging, just as with file edits.

* Graphical visualization of any element's branch and version tree,
  including all merges.

* Automatic identification of the common ancestor ("base contributor")
  version when performing a merge.

* The best multi-way merge tool I have seen -- it has issues, but
  overall I rate it a B+.  (I would rate most no higher than a C.)
  The same merge tool is used for directories as for files, with
  directory entries being represented textually.

----------

[1] Not every client's -- one view server typically supports
    multiple clients, and nothing keeps track of _them_.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4e5c5b5f.moT7dLemOuteQJ5T%perryh>