'git sparse-checkout add' hangs if local repo is using alternative objects store

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear Git developers,

Reporting Issue:
    'git sparse-checkout add' hangs if local repo is using alternative
objects store

Found in:
    Git 2.37.0

Reproduction steps:
    1. Local repo setup:
        git init
        git remote add origin <repo_url>
        echo <alternative_objects_store> >! .git/objects/info/alternates
        git config --unset-all remote.origin.fetch
        git config --unset-all remote.origin.tagopt
        git config --add remote.origin.tagopt --no-tags
        git config --add remote.origin.fetch
+refs/heads/main:refs/remotes/origin/main
        git config core.sparsecheckout true
        git config core.sparsecheckoutcone true
        git fetch

    2. Sparse checkout <dir1>:
        git sparse-checkout set <dir1>
        git checkout -b tmp1 origin/main

    3. Add another <dir2> via sparse-checkout, which hangs:
        git sparse-checkout add <dir2>
            09:39:11.169116 read-cache.c:2451       performance:
6.326754679 s:  read cache .git/index
            09:39:11.731989 unpack-trees.c:496      performance:
0.197235658 s:   check_updates
            09:39:11.732031 unpack-trees.c:2062     performance:
0.512473791 s:  update_sparsity
            09:39:17.162018 read-cache.c:3135       performance:
5.429975480 s:  write index, changed mask = 2
            09:39:17.637510 cache-tree.c:483        performance:
0.154317183 s:  cache_tree_update
            09:39:17.857204 cache-tree.c:483        performance:
0.019983088 s:  cache_tree_update

Repo and dir info:
    <repo_url> is a large repo, containing large number of directories
and 2 million files;
    Local repo is using <alternative_objects_store>, which is working
by verifying: git count-objects -vH;
    <dir1> used here is one level deep, <dir2> used here is 5 level deep

Observations:
    1. Even 'sparse-checkout add' hangs, scm code from <dir2> was
actually downloaded pretty fast
    2. If waited out 'sparse-checkout add', git seems start to
download large number of objects from alternative objects store into
local .git/objects

Please help us take a look at this issue and let us know if you need
more information.

Thanks,

Dian Xu
Mathworks, Inc
1 Lakeside Campus Drive, Natick, MA 01760
508-647-3583



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux