Subject: Re: best git practices, was Re: Git User's Survey 2007 unfinishedsummary continued

From: Theodore Tso <[email-masked]>
Date: Thu, 25 Oct 2007 14:23:58 -0400

On Thu, Oct 25, 2007 at 01:02:19PM -0500, Federico Mena Quintero wrote:
> On Thu, 2007-10-25 at 11:21 -0400, Theodore Tso wrote:
> 
> > And of course it's inelegant.  You just told us we were dealing with
> > CVS-brain-damaged corporate developers who can't be bothered to learn
> > about the fine points of using things the git way.
> 
> Ignore the corporate developers who use SCMs only because their company
> requires them to.  Git is not the right thing for them; some
> Eclipse-based monstrosity probably is.  It's like the horrendous
> Oracle-based expense-reporting thing we have to use at Novell; I use it
> because they make me, not because I'm particularly excited about
> reporting expenses :)

I think I misunderstand Andreas' problem statement.  What I proposed
is useful for corporate developers who are deeply confused by
branches, especially when a single working directory is constantly
jumping back and forth between several branches.  (Having the current
branch in your bash prompt is a *big* help here, but we can't count on
them having it.)

So setting up a solution where each branch gets its own working
directory is a great solution where you have some number of newbie
developers in a company that get easily confused, while still
providing advanced users the ability to use the full power of git, and
giving both the newbie and advanced users the advantages of
disconnected operations.  And, of course, hopefully some day the
newbie users will grow up to become advanced users.

Right now I suspect a number of projects who have picked hg or bzr do
so because the traditional git model is too confusing to newbie users.
So for those people, creating the model where branch == a separate
directory may make life easier for them.  That's probably the one
thing that bzr does much better than git; it has a number of modes
which act as training wheels for the easily confused user.  For
example, the bzr's "bound branch" requires you to have network access,
since anything that modifies the local repository requires hitting the
remote server as well.  Horrible!  Gives you all of the downsides of
CVS!  But it allows some users to use the SCM is CVS-style mode, while
allowing more advanced users to use it in a more distributed mode.

So I think it *is* useful to help the corporate developers, because
that means there are more git users --- and someday some of us on this
list might have to work at such a company, and better that they use
git than something like perforce or Clearcase, right?  :-)

> However, *do think* of the free software developers who have been using
> CVS forever.  You won't make friends among them if you keep saying, "you
> use CVS?  You are brain-damaged, then."  

Fair enough.  I used the term somewhat toungue-in-cheek, and I
probably should have said "newbie user" instead.

							- Ted