From 789145f842e354f109688929737aef5d06bd3e26 Mon Sep 17 00:00:00 2001 From: Ben Madore <823868+madorb@users.noreply.github.com> Date: Fri, 17 Oct 2025 14:24:39 -0400 Subject: [PATCH] Add .gitignore to .beads directory during init (#64) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create .gitignore file in .beads/ when running bd init - Ignores *.db and *.db-* patterns to prevent database commits - Add test coverage to verify .gitignore creation - Add .claude/settings.local.json to project .gitignore 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Co-authored-by: Ben Madore --- .gitignore | 3 +++ README.md | 13 +++---------- cmd/bd/init.go | 8 ++++++++ cmd/bd/testdata/init.txt | 3 +++ 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 70e85d1e..e00cd7bc 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,9 @@ go.work *.swo *~ +# Claude Code +.claude/settings.local.json + # OS .DS_Store Thumbs.db diff --git a/README.md b/README.md index 2ee6b034..c59398bc 100644 --- a/README.md +++ b/README.md @@ -774,16 +774,9 @@ Each line is a complete JSON issue object: ### Setup -Add to `.gitignore`: -``` -.beads/*.db -.beads/*.db-* -``` - -Add to git: -``` -.beads/issues.jsonl -``` +The `.beads/` directory is automatically configured during `bd init`: +- Database files (`.beads/*.db`, `.beads/*.db-*`) are gitignored automatically +- JSONL file (`.beads/issues.jsonl`) is tracked in git ### Workflow diff --git a/cmd/bd/init.go b/cmd/bd/init.go index da65b4b3..6b39ae9a 100644 --- a/cmd/bd/init.go +++ b/cmd/bd/init.go @@ -42,6 +42,14 @@ and database file. Optionally specify a custom issue prefix.`, os.Exit(1) } + // Create .gitignore in .beads directory + gitignorePath := filepath.Join(beadsDir, ".gitignore") + gitignoreContent := "*.db\n*.db-*\n" + if err := os.WriteFile(gitignorePath, []byte(gitignoreContent), 0644); err != nil { + fmt.Fprintf(os.Stderr, "Warning: failed to create .gitignore: %v\n", err) + // Non-fatal - continue anyway + } + // Create database dbPath := filepath.Join(beadsDir, prefix+".db") store, err := sqlite.New(dbPath) diff --git a/cmd/bd/testdata/init.txt b/cmd/bd/testdata/init.txt index 8062605c..5b8c5301 100644 --- a/cmd/bd/testdata/init.txt +++ b/cmd/bd/testdata/init.txt @@ -2,3 +2,6 @@ bd init --prefix test stdout 'initialized successfully' exists .beads/test.db +exists .beads/.gitignore +grep '^\*\.db$' .beads/.gitignore +grep '^\*\.db-\*$' .beads/.gitignore