[ET Trac] [Einstein Toolkit] #942: GetComponents should not use shallow clones for Git checkouts

Einstein Toolkit trac-noreply at einsteintoolkit.org
Sat Jun 2 07:24:53 CDT 2012


#942: GetComponents should not use shallow clones for Git checkouts
---------------------------+------------------------------------------------
 Reporter:  hinder         |       Owner:  eric9
     Type:  enhancement    |      Status:  new  
 Priority:  major          |   Milestone:       
Component:  GetComponents  |     Version:       
 Keywords:                 |  
---------------------------+------------------------------------------------
 GetComponents currently uses a "shallow clone" for Git repositories by
 default.  This checks out only the repository information needed for the
 current version.

 Problems with shallow clones:

 * It is impossible to switch branches to another version after the initial
 clone.  Since GetComponents checks out release branches using "git clone
 ...; git checkout ...", this means that release branches cannot be checked
 out using the default GetComponents options (see #934).  This has to be
 fixed.

 * You cannot push or pull from/to a shallow clone.  In fact, you can do
 very little with a shallow clone that you couldn't also do with source
 obtained from a tarball.

 Benefits of shallow clones:

 * You save a small amount of space and checkout time due to not including
 the (compressed) version history, which was the original rationale for
 using them (see #148).  The checkout size of Carpet was measured to
 increase from 73 MB to 110 MB.

 There was discussion in #148 amounting to the idea of providing a two-tier
 Einstein Toolkit.  The "developer tier" would be interested in full clones
 and authenticated repositories, and the "user tier" would be interested in
 shallow clones and non-authenticated (incorrectly conflated with "public")
 repositories.  I strongly dislike this idea, and agree with the comments
 in that ticket which said that nearly all users of Cactus are also
 developers, and should be treated in the same way.  Let's keep things
 simple and egalitarian.

 I do not consider the space-saving to be significant, even if this was
 representative of the ET as a whole, which it is not.

 Shallow clones are nonstandard and lead to problems and confusion.  I
 propose removing support for shallow clones from GetComponents.    If
 there are truly users of the ET who do not want to interact with version
 control systems at all, then we can accommodate these users by providing
 release tarballs, which will be much smaller, easier and faster to
 download.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/942>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list