From: Derrick Stolee <stolee@gmail.com>
To: "Randall S. Becker" <rsbecker@nexbridge.com>,
'Junio C Hamano' <gitster@pobox.com>,
'Shourya Shukla' <shouryashukla.oo@gmail.com>
Cc: git@vger.kernel.org, sandals@crustytoothpaste.net,
'Derrick Stolee' <dstolee@microsoft.com>,
'Elijah Newren' <newren@gmail.com>,
'Christian Couder' <christian.couder@gmail.com>
Subject: Re: [PATCH v3 3/4] gitfaq: shallow cloning a repository
Date: Tue, 21 Apr 2020 21:30:59 -0400 [thread overview]
Message-ID: <9142ccdb-6359-4936-e621-55eab980b7cd@gmail.com> (raw)
In-Reply-To: <011001d6181d$97301fc0$c5905f40$@nexbridge.com>
On 4/21/2020 4:43 PM, Randall S. Becker wrote:
> On April 21, 2020 4:01 PM, Junio C Hamano
>> Subject: Re: [PATCH v3 3/4] gitfaq: shallow cloning a repository
>>
>> Shourya Shukla <shouryashukla.oo@gmail.com> writes:
>>
>>> Add issue in 'Common issue' section which covers issues with cloning
>>> large repositories. Use shallow cloning to clone the repository in a
>>> smaller size.
>>>
>>> Signed-off-by: Shourya Shukla <shouryashukla.oo@gmail.com>
>>> ---
>>> Documentation/gitfaq.txt | 14 ++++++++++++++
>>> 1 file changed, 14 insertions(+)
>>>
>>> diff --git a/Documentation/gitfaq.txt b/Documentation/gitfaq.txt index
>>> 13d37f96af..cea293cf07 100644
>>> --- a/Documentation/gitfaq.txt
>>> +++ b/Documentation/gitfaq.txt
>>> @@ -275,6 +275,20 @@ I want to change the remote of my repository.
>> How do I do that?::
>>> One can list the remotes of a repository using `git remote -v` command.
>>> The default name of a remote is 'origin'.
>>>
>>> +[[shallow-cloning]]
>>> +The repository I am trying to clone is too big. Is there an
>>> +alternative way of cloning it in lesser space?::
>>> + One can clone a repository having a truncated history, meaning the
>>> + history will span upto a specified number of commits instead of
>>> + the whole history of the repository. This is called 'Shallow
> Cloning'.
>>> ...
>>
>> The question is worth keeping but the answer is questionable.
>>
>> I have a feeling that --depth/shallow is deprecated/frowned upon these
> days
>> and more people recommend partial/blob-less clones instead (a few random
>> people added to Cc: to see if they want to say something here).
>
> I rather hate to chime in as a dissenting opinion, but the --depth/shallow
> clone is very useful when git is being used as an artifact repository for
> production.
It is important, then, to mention what the _real_ uses for shallow clones.
They are great for getting just the working directory at tip for a throwaway
action (like building an artifact, or just taking a static copy of something)
but it is a _terrible_ way to start working on source code for a project that
you intend to use for daily work.
The way this is worded in the FAQ will lead users to have a bad experience
and we should recommend partial clone (--filter=blob:none) instead.
Of course, with the speedups from reachability bitmaps, it is sometimes
_faster_ to do a partial clone than a shallow clone. (It definitely takes
less time in the "counting objects" phase, and the cost of downloading
all commits and trees might be small enough on top of the necessary blob
data to keep the total cost under a shallow clone. Your mileage may vary.)
Because the cost of a partial clone is "comparable" to shallow clone, I
would almost recommend partial clone over shallow clones 95% of the time,
even in scenarios like automated builds on cloud-hosted VMs.
Thanks,
-Stolee
next prev parent reply other threads:[~2020-04-22 1:31 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-21 13:12 [PATCH v3 0/4] gitfaq: add issues in the 'Common Issues' section Shourya Shukla
2020-04-21 13:12 ` [PATCH v3 1/4] gitfaq: files in .gitignore are tracked Shourya Shukla
2020-04-21 19:45 ` Junio C Hamano
2020-04-21 13:12 ` [PATCH v3 2/4] gitfaq: changing the remote of a repository Shourya Shukla
2020-04-21 19:54 ` Junio C Hamano
2020-04-27 17:30 ` Shourya Shukla
2020-04-21 13:12 ` [PATCH v3 3/4] gitfaq: shallow cloning " Shourya Shukla
2020-04-21 20:00 ` Junio C Hamano
2020-04-21 20:43 ` Randall S. Becker
2020-04-21 20:57 ` Junio C Hamano
2020-04-21 21:25 ` Randall S. Becker
2020-04-22 1:30 ` Derrick Stolee [this message]
2020-04-22 4:00 ` Jonathan Nieder
2020-04-22 0:13 ` Elijah Newren
2020-04-21 13:12 ` [PATCH v3 4/4] gitfaq: fetching and pulling " Shourya Shukla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9142ccdb-6359-4936-e621-55eab980b7cd@gmail.com \
--to=stolee@gmail.com \
--cc=christian.couder@gmail.com \
--cc=dstolee@microsoft.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=rsbecker@nexbridge.com \
--cc=sandals@crustytoothpaste.net \
--cc=shouryashukla.oo@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).