On 3/1/21 8:18 AM, Bagas Sanjaya wrote:
Thank you for filling out a Git bug report!
Please answer the following questions to help us understand your issue.
What did you do before the bug happened? (Steps to reproduce your issue)
I'm poking around with partial clone. On my local server on my computer
I have full clone of Git (git.git) repo.
I do partial clone from that server as remote (which is actually on the
same
computer):
git clone https://my-local-server.git/myself/git.git --filter=blob:none
Inside the partial clone, I tried to convert it to full clone. First, I
gather
list of missing objects:
git rev-list --objects --all --missing=print | grep -oP '^\?\K\w+' >
.git/missing.list
Then I fetched those:
git fetch origin $(cat .git/missing.list)
That command will build a very very long command line and cause the
shell to complain. Instead, try passing the list of objects via stdin.
$ cat .git/missing.list | git fetch --stdin origin
What did you expect to happen? (Expected behavior)
All missing objects fetched successfully
What happened instead? (Actual behavior)
Git returned:
-bash: /opt/git/bin/git: Argument list too long
What's different between what you expected and what actually happened?
(nothing)
Anything else you want to add:
I think the problem lies on how to feed list of 110K+ objects to `git
fetch`.
Note: Both the local server and the computer use Git 2.30.1
Please review the rest of the bug report below.
You can delete any lines you don't wish to share.
[System Info]
git version:
git version 2.30.1
cpu: x86_64
built from commit: 773e25afc41b1b6533fa9ae2cd825d0b4a697fad
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
uname: Linux 5.10.11-kernelorg-upstream-generic #1 SMP Fri Jan 29
12:56:19 WIB 2021 x86_64
compiler info: gnuc: 9.3
libc info: glibc: 2.31
$SHELL (typically, interactive shell): /bin/bash
[Enabled Hooks]
(none)