diff options
author | Michael Kuhn <michael.kuhn@ovgu.de> | 2021-09-16 17:41:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-16 09:41:10 -0600 |
commit | d73fe19d931f22307e5118b3f788304665de2db1 (patch) | |
tree | 07109dc0fb9de64083a6df480c546c7d3ce8263f | |
parent | 5b211c90f5b30dc3866b5d72185fe7ab6108ad46 (diff) | |
download | spack-d73fe19d931f22307e5118b3f788304665de2db1.tar.gz spack-d73fe19d931f22307e5118b3f788304665de2db1.tar.bz2 spack-d73fe19d931f22307e5118b3f788304665de2db1.tar.xz spack-d73fe19d931f22307e5118b3f788304665de2db1.zip |
Recommend Git's manyFiles feature (#25977)
Git 2.24 introduced a feature flag for repositories with many files, see:
https://github.blog/2019-11-03-highlights-from-git-2-24/#feature-macros
Since Spack's Git repository contains roughly 8,500 files, it can be
worthwhile to enable this, especially on slow file systems such as NFS:
```
$ hyperfine --warmup 3 'cd spack-default; git status' 'cd spack-manyfiles; git status'
Benchmark #1: cd spack-default; git status
Time (mean ± σ): 3.388 s ± 0.095 s [User: 256.2 ms, System: 625.8 ms]
Range (min … max): 3.168 s … 3.535 s 10 runs
Benchmark #2: cd spack-manyfiles; git status
Time (mean ± σ): 168.7 ms ± 10.9 ms [User: 98.6 ms, System: 126.1 ms]
Range (min … max): 144.8 ms … 188.0 ms 19 runs
Summary
'cd spack-manyfiles; git status' ran
20.09 ± 1.42 times faster than 'cd spack-default; git status'
```
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | lib/spack/docs/getting_started.rst | 2 | ||||
-rw-r--r-- | lib/spack/docs/index.rst | 2 |
3 files changed, 3 insertions, 3 deletions
@@ -26,7 +26,7 @@ for examples and highlights. To install spack and your first package, make sure you have Python. Then: - $ git clone https://github.com/spack/spack.git + $ git clone -c feature.manyFiles=true https://github.com/spack/spack.git $ cd spack/bin $ ./spack install zlib diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst index c1585a0fb4..ba5b93a567 100644 --- a/lib/spack/docs/getting_started.rst +++ b/lib/spack/docs/getting_started.rst @@ -35,7 +35,7 @@ Getting Spack is easy. You can clone it from the `github repository .. code-block:: console - $ git clone https://github.com/spack/spack.git + $ git clone -c feature.manyFiles=true https://github.com/spack/spack.git This will create a directory called ``spack``. diff --git a/lib/spack/docs/index.rst b/lib/spack/docs/index.rst index fb9c669c12..dcebcdfb33 100644 --- a/lib/spack/docs/index.rst +++ b/lib/spack/docs/index.rst @@ -39,7 +39,7 @@ package: .. code-block:: console - $ git clone https://github.com/spack/spack.git + $ git clone -c feature.manyFiles=true https://github.com/spack/spack.git $ cd spack/bin $ ./spack install libelf |