commercialhaskell/stack

Optionally cache Git object files in Pantry directory

Aberta

#4.758 aberto em 21 de abr. de 2019

 (2 comentários) (1 reação) (0 responsável)Haskell (848 forks)batch import
help wantednewcomer friendlytype: discusstype: enhancementtype: performance

Métricas do repositório

Stars
 (4.060 estrelas)
Métricas de merge de PR
 (Mesclagem média 17d 10h) (6 fundiu PRs em 30d)

Description

Setting milestone to P1 to ensure we decide on this before the Stack 2.0 release.

I was unaware until recently of the GIT_OBJECT_DIRECTORY environment variable, described at https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables. IIUC, we can set this environment variable to a shared directory inside the pantry directory, and cache repository information across usages.

Advantages:

  • Don't need to reclone the entire history of a repo when switching to a slightly later commit
  • The current inefficiency of using multiple subdirectories from a single repo will mostly disappear

Disadvantages:

  • Adds lots of additional storage

The disadvantage can be addressed with a future feature of some gc command to Stack, which is actually the topic of a likely GSoC project.

CC @borsboom and @qrilka for feedback.

Guia do colaborador