I first shallow-cloned a repo with depth=1.
cd $folder_path
git init
git remote add $my_remote $url_to_repo
git fetch $my_remote $my_branch --depth=1
git reset --hard $my_remote/$my_branch
cd -
I then tried to unshallow the local clone by running twice this
if [[ ! -z "$(git rev-parse --is-shallow-repository)" ]]; then
echo "STILL SHALLOW"
git fetch $my_remote $my_branch --unshallow
fi
I got "STILL SHALLOW" twice, and step by step still the same...
$ git rev-parse --is-shallow-repository
--is-shallow-repository
$ git fetch $my_remote $my_branch --unshallow
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 16 (delta 8), reused 0 (delta 0)
Unpacking objects: 100% (16/16), done.
From ssh://my_git_url.git
* branch my_branch -> FETCH_HEAD
$ git rev-parse --is-shallow-repository
--is-shallow-repository
So what am I doing wrong?
how to use --unshallow
?
git rev-parse --is-shallow-repository
is supposed to return true
or false
so using if [[ ! -z "$(git rev-parse --is-shallow-repository)" ]]
always is treated as TRUE
because even false
(returned by command) is not an empty string.
It seems your version of git
doesn't support rev-parse --is-shallow-repository
sub-command and it turns out in that case any flag would be returned as output:
$ git rev-parse --repo-is-not-shallow-anymore
$ --repo-is-not-shallow-anymore
Because of following error your repo is not shallow and no further action is required:
fatal: --unshallow on a complete repository does not make sense