From ee1b30d0ec8959769b7fe029942fb15e72dfb986 Mon Sep 17 00:00:00 2001 From: yisroel Date: Wed, 6 May 2026 14:58:27 +0300 Subject: [PATCH] harden devshell: anchor pgdata to repo root, broaden gitignore shellHook now derives PGDATA from $(git rev-parse --show-toplevel) instead of $PWD. nix develop / direnv from a subdir (e.g. backend/) used to seed a duplicate cluster at backend/.postgres that leaked into git tracking. .gitignore loses its leading slash on .postgres/ + .direnv/ + .pc.* so any nested cluster also gets ignored. fallback to pwd preserves behavior outside a git repo. 968 stray backend/.postgres/* blobs already pruned from history via git-filter-repo before this commit. --- .gitignore | 6 +++--- flake.nix | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index e3b9d87..6b6376c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,9 @@ # Nix devshell artefacts -/.postgres/ -/.direnv/ +.postgres/ +.direnv/ result result-* # Process-compose state -/.pc.* +.pc.* process-compose-*.log diff --git a/flake.nix b/flake.nix index 6725942..fb42a49 100644 --- a/flake.nix +++ b/flake.nix @@ -27,7 +27,11 @@ ]; shellHook = '' - export PGDATA="$PWD/.postgres" + # Anchor PGDATA to the repo root so subshells in subdirs + # (e.g. backend/) reuse the same cluster instead of seeding + # a stray .postgres there. + REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)" + export PGDATA="$REPO_ROOT/.postgres" export PGHOST="$PGDATA" export PGUSER="postgres" export PGDATABASE="postgres"