# Deny everything, then whitelist what belongs in the repository. # # The practice is deliberate: a repository should hold what was decided to # put in it, not whatever happened to be in the directory when someone ran # "git add .". Build output, editor droppings, downloaded dependencies and # exported binaries are numerous, are regenerated, and differ between # machines; source is few and is chosen. So the default is no, and every # yes below is a decision that can be read. # # To see what is being excluded, and why: # git status --ignored # git check-ignore -v # git ls-files --others --ignored --exclude-standard --directory * # ── the repository itself ──────────────────────────────────────────────── !.gitignore !README.md !**/COPYRIGHT !**/LICENSE # ── directories have to be walked into before a file inside can match ──── !gleam/ !dlang/ !org/ !gleam/**/ !dlang/**/ !org/**/ !pipeline/ # but not these, whatever they contain build/ .build/ .direnv/ .gleam/ bin/ result result-* # ── documentation and notes, in any language directory ─────────────────── !**/*.md !**/*.org # ── nix ────────────────────────────────────────────────────────────────── !**/*.nix !**/flake.lock !**/.envrc # ── dlang ──────────────────────────────────────────────────────────────── !**/*.d !**/dub.json !**/dub.sdl !**/dub.selections.json *.o *.a *.lst # ── gleam ──────────────────────────────────────────────────────────────── !**/*.gleam # Erlang, for what Gleam reaches through FFI (a sha256, from OTP crypto) !**/src/*.erl # gleam.toml is the manifest, manifest.toml is the lockfile: both belong !**/*.toml *.beam *.ez erl_crash.dump # ── ruby, when it arrives ──────────────────────────────────────────────── !**/*.rb !**/Gemfile !**/Gemfile.lock !**/*.gemspec # ── continuous integration ─────────────────────────────────────────────── !**/*.sh !**/*.yml !**/*.yaml