diff mbox series

clone: caveat note on converting partial clone

Message ID 20210529120730.38472-1-bagasdotme@gmail.com (mailing list archive)
State New, archived
Headers show
Series clone: caveat note on converting partial clone | expand

Commit Message

Bagas Sanjaya May 29, 2021, 12:07 p.m. UTC
Currently partial clones can't be converted into full clones, because
there is an issue where the remote can't send all missing objects
required.

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
---
 This patch is based on "clone: document partial clone section" by Teng
 Long [1].

 [1]:
https://lore.kernel.org/git/pull.745.v5.git.git.1614695133486.gitgitgadget@gmail.com/

 Documentation/git-clone.txt | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Jeff King May 30, 2021, 9:47 p.m. UTC | #1
On Sat, May 29, 2021 at 07:07:31PM +0700, Bagas Sanjaya wrote:

> Currently partial clones can't be converted into full clones, because
> there is an issue where the remote can't send all missing objects
> required.
> 
> Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
> ---
>  This patch is based on "clone: document partial clone section" by Teng
>  Long [1].
> 
>  [1]:
> https://lore.kernel.org/git/pull.745.v5.git.git.1614695133486.gitgitgadget@gmail.com/

Wouldn't:

  git -c fetch.negotiationAlgorithm=noop fetch ...

work?

IMHO that is not ideal, and I would like to see it work even when we
provide "have" lines to the server. But if we are going to tell users
something in the documentation, pointing them to this technique is
probably much more helpful than saying "it can't be done".

-Peff
Derrick Stolee June 1, 2021, 10:46 a.m. UTC | #2
On 5/30/21 5:47 PM, Jeff King wrote:
> On Sat, May 29, 2021 at 07:07:31PM +0700, Bagas Sanjaya wrote:
> 
>> Currently partial clones can't be converted into full clones, because
>> there is an issue where the remote can't send all missing objects
>> required.
>>
>> Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
>> ---
>>  This patch is based on "clone: document partial clone section" by Teng
>>  Long [1].
>>
>>  [1]:
>> https://lore.kernel.org/git/pull.745.v5.git.git.1614695133486.gitgitgadget@gmail.com/
> 
> Wouldn't:
> 
>   git -c fetch.negotiationAlgorithm=noop fetch ...
> 
> work?
> 
> IMHO that is not ideal, and I would like to see it work even when we
> provide "have" lines to the server. But if we are going to tell users
> something in the documentation, pointing them to this technique is
> probably much more helpful than saying "it can't be done".

Any workaround is better than none.

At minimum, I would expect a summary of the discussion instead of
a pointer to a mailing list thread.

Thanks,
-Stolee
diff mbox series

Patch

diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
index 15495675a8..551d8fd141 100644
--- a/Documentation/git-clone.txt
+++ b/Documentation/git-clone.txt
@@ -377,6 +377,10 @@  only reading commits. `git log -p -- <path>` will download blobs to
 generate the patch output and git log --raw will download all blobs
 that changed at recent commits in order to compute renames.
 
+It is currently not possible to convert partial clones into full clones,
+because there is an issue where the remote can't send all missing
+objects required. See discussion at [1].
+
 :git-clone: 1
 include::urls.txt[]
 
@@ -417,6 +421,11 @@  $ cd my-linux
 $ git clone --bare -l /home/proj/.git /pub/scm/proj.git
 ------------
 
+FOOTNOTES
+---------
+
+[1]: https://lore.kernel.org/git/6422f505-29c4-bee9-e28c-b77dd831c246@gmail.com/T/#u
+
 
 GIT
 ---