[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