Lee H. Marzke on 20 Dec 2018 11:02:02 -0800


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Git: net time gain or loss?


After using many SCM systems over the years I totally agree that git (command-line) is a complete
mess, but most developers don't really use Git directly but some local GUI tool to hide the complexity.

I see large Enterprise customers slowly uncovering Git's limitations, and realizing that significant downsides
exist with Git at scale, and are starting to look for alternatives that support large installations
with less effort.  Now for single developers or small business the following doesn't apply.

I think Git users tend to lean towards git because it's the only thing that they have used, or have only used
other older tools like CVS, etc. but the arguments for using git over other SCM's have been slowly been overcome.
Yes, there were some valid arguments about some Git features being better 5 years ago, but the problems
with Git were always left out.  It's not convenient to use SHA digests instead of linear version numbers or
be unable to check in large repositories or binary files.

Git rebase is great for private dev work, but badly breaks things if used on code that has been distributed
to others.    Since Git keeps change history locally,  a Git repo on your machine uses 2x to 3x the
local disk space of just the raw code,  and the initial sync time is longer since you have to
sync the code and past history ( but arguments for Git don't mention this fact ).   The need to split up repositories
into multiple small units, and lack of support for large binaries is always left out.  ( Binary support can be
added with LFS - but that is a central server solution - not native Git )

Developers really don't need 'distributed' SCM, because any Enterprise will force all the code into a
central repository anyway.   What they really need is:  1) off-line access, 2) ability to hide
intermediate commits (often mistakes ) and only check in the final result. and 3) easy branching and
good merge tools.

Enterprise infrastructure admins don't like Git because of lack of central AD authentication, lack of
tools to remove mistakes, and lack of fine-grain access controls, lack of binary support, etc.

So perhaps taking the best feature of both Git and best of breed Enterprise SCM features is really the best solution.
Turns out that the 2018 Helix SCM tool now has features of both Perforce and Native Git included.

Helix has two internal repositories ( one for native p4 ) and one for native Git ( graph depot ).  This means
that Git users can now connect natively with the Helix server,  but you also get Active directory
integration and global replication etc.   Note that the central Helix server has had additional
commands added to support ALL the git features on top of all the existing Perforce features such as
seamless replication.

The two ( P4 and Git ) repositories in Helix are not fully connected yet.  This is mainly designed to let Git teams checkin
to a Git native repo, and P4 users checkin to a P4 repo.  However a build system can sync the latest from both
p4 and git from a single client ( so larger projects can have legacy teams on p4, and new projects on Git )

Now this costs significant money, so it's mainly targeted at large Enterprises, but it seems from the amount of recent
inquiries that large organizations are finally hitting a wall with Git issues and Git training,  complexity of multiple
repos, lack of binary support, etc.
 
So as a developer ,  do you care what your Central Enterprise repository runs?  For example GitHub, GitLab
or Helix Team Hub (HTH) ,  as long as your Git tools connect ?  If your an infrastructure admin, what issues
do you have issues with Git ?

Note that HTH is just a hub,  and all code is still put into Helix or other Git repos.  HTH provides pull-request support
interface to CI tools, central authentication, etc.

So, in summary to JP's question,  yes people are slowly figuring out that while Git is good, it is not all it is
hyped up to be and becomes a problem to support in larger organizations.
 

Lee




----- Original Message -----
> From: "Vossen JP" <jp@jpsdomain.org>
> To: "Philadelphia Linux User's Group Discussion List" <plug@lists.phillylinux.org>
> Sent: Wednesday, December 19, 2018 6:58:22 PM
> Subject: [PLUG] Git: net time gain or loss?

> I was just struggling with several things that should be simple[1], but
> since it's Git they aren't [2], and I got to thinking (and THAT's never
> good).  Git is blazingly fast, and for the right users it's an awesome
> tool.  But for the wrong users it's a infuriatingly frustrating
> time-suck to do...just about anything.  And I've argued [3] that _most_
> users are the wrong users.
> 
> So...does Git create a net time gain or net time loss in the world?  For
> me it's a _massive_ net loss.
> 
> [1] It doesn't matter what they are, they should have been simple, in
> any other VCS I'm familiar with they ARE simple, but for Git I wasted
> over a cumulative hour Googling.
> [2] The entirety of Stack-Exchange's Git section, and https://xkcd.com/1597/
> [3] https://www.jpsdomain.org/public/Revision_Control_for_the_Rest_of_Us.pdf
> 
> Thoughts?
> JP
> --  -------------------------------------------------------------------
> JP Vossen, CISSP | http://www.jpsdomain.org/ | http://bashcookbook.com/
> ___________________________________________________________________________
> Philadelphia Linux Users Group         --        http://www.phillylinux.org
> Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
> General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug

-- 
"Between subtle shading and the absence of light lies the nuance of iqlusion..." - Kryptos 

Lee Marzke, lee@marzke.net http://marzke.net/lee/ 
IT Consultant, VMware, VCenter, SAN storage, infrastructure, SW CM 

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug