Skip to content

disk usage when using sparse_paths #352

@mastupristi

Description

@mastupristi

I'm trying out gitman
I set up GITMAN_CACHE, and my file contains.

location: gitman_modules

sources:
  - name: cmsis_5
    type: git
    repo: https://github.com/ARM-software/CMSIS_5.git
    rev: 2b7495b8535bdcb306dac29b9ded4cfb679d7e5c
#    sparse_paths:
#      - CMSIS/Core/Include
#      -  CMSIS/DSP/Include

  - name: mcux-soc-svd
    type: git
    repo: https://github.com/NXPmicro/mcux-soc-svd.git
    rev: e93e0b0067b9297de056de4cef6425c9c999fda4
#    sparse_paths:
#      - MIMXRT1175
    

  - name: nxp-mcux-sdk
    type: git
    repo: https://github.com/NXPmicro/mcux-sdk.git
    rev: 6f3fd257cdcf978a4d26e7d6e9eed9240037422b
#    sparse_paths:
#      - drivers
#      - devices/MIMXRT1175
#      - components/phy/device/phyrtl8211f
#      - components/phy/device/phyksz8081

I try both with sparse_paths commented and uncommented and these are the results:

Repository Mode Working Directory .git Size Total Size
cmsis_5 Full 133 MB 1.1 MB 134 MB
cmsis_5 Sparse 3.5 MB 261 MB 265 MB
mcux-soc-svd Full 2.1 GB 208 KB 2.1 GB
mcux-soc-svd Sparse 42 MB 37 MB 79 MB
nxp-mcux-sdk Full 1.2 GB 2.7 MB 1.2 GB
nxp-mcux-sdk Sparse 98 MB 237 MB 335 MB

Questions

  • What is causing the .git directory to grow so much when using sparse_paths?
  • Is this a Gitman-specific behavior (e.g., due to how git clone is invoked)?
  • Does this come from Git itself, perhaps because of --dissociate when cloning with --reference?
  • Are there parameters or options (in Git or Gitman) that can avoid this .git bloat while keeping sparse checkouts?
  • Is there a known clean way to preserve the benefits of GITMAN_CACHE without duplicating all objects in .git/objects?

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions