an automated repository that aggregates many guix dotfiles to be indexed by GitHub’s search. this is updated once a day.
if you find your dotfiles in here and would like it removed, please feel free to contact me or open a pull request. or if you want to add your dotfiles instead, also please, PRs are welcome.
i found myself frequently going through multiple git forges, some of which don’t have search/grep functionality, trying to find how others solved certain problems that i was encountering. this is an attempt to aggregate useful guix dotfiles and other guix related projects, so i can easily find examples.
as this repository might be large, for cloning for the purpose of
making edits, i recommend these command which clones everything
excluding the repos/
subdirectory
git clone --depth=1 --filter=tree:0 --sparse --no-checkout https://github.com/aemogie/guix-aggregator.git
cd guix-aggregator
git sparse-checkout set --no-cone "/*" "!repos/"
git checkout
--depth=1
- shallow clones only the last commit
--filter=tree:0
- partial clone, ensures that no trees are cloned
at all on first clone. the fetching happens lazily whenever you
checkout files.
--filter=blob:none
would also work if you want the trees to be fetched, but not the file contents. --sparse
- initializes the repository to be a sparse-checkout. by default this checks-out the toplevel directory, without recursng into any subdirectories. this is often good enough if you’re only modifying one of these files.
--no-checkout
- this is optional, and more aggressive in that it forces sparse to not even checkout the very top level directory either which is the default behaviour.
if using --no-checkout
the git clone
should only fetch a single
object, similar to the sample output below.
Cloning into 'guix-aggregator'... remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0), pack-reused 0 (from 0) Receiving objects: 100% (1/1), done.
if you didn’t include --no-checkout
and already have the file you
want to edit, then the next two commands are not relevant. otherwise, we
further configure the already initialized sparse checkout to include
everything but the repos/
subdirectory. finally we run git
checkout
to ask git to finally checkout what we have requested.