feat(import,sync): add --no-git-history flag to prevent spurious deletions
Fixes bd-0b2: The git history backfill mechanism was causing data loss during JSONL filename migrations (beads.jsonl → issues.jsonl). When issues existed in the old filename's git history, the backfill incorrectly treated them as "deleted" and purged them from the database. Changes: - Add NoGitHistory field to importer.Options and ImportOptions structs - Modify purgeDeletedIssues() to skip git history check when flag is set - Add --no-git-history flag to bd import command - Add --no-git-history flag to bd sync command - Update purge_test.go to pass Options argument Usage: bd import -i .beads/issues.jsonl --no-git-history bd sync --no-git-history 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -165,6 +165,7 @@ type ImportOptions struct {
|
||||
SkipPrefixValidation bool // Skip prefix validation (for auto-import)
|
||||
ClearDuplicateExternalRefs bool // Clear duplicate external_ref values instead of erroring
|
||||
OrphanHandling string // Orphan handling mode: strict/resurrect/skip/allow (empty = use config)
|
||||
NoGitHistory bool // Skip git history backfill for deletions (prevents spurious deletion during JSONL migrations)
|
||||
}
|
||||
|
||||
// ImportResult contains statistics about the import operation
|
||||
@@ -221,6 +222,7 @@ func importIssuesCore(ctx context.Context, dbPath string, store storage.Storage,
|
||||
SkipPrefixValidation: opts.SkipPrefixValidation,
|
||||
ClearDuplicateExternalRefs: opts.ClearDuplicateExternalRefs,
|
||||
OrphanHandling: importer.OrphanHandling(orphanHandling),
|
||||
NoGitHistory: opts.NoGitHistory,
|
||||
}
|
||||
|
||||
// Delegate to the importer package
|
||||
|
||||
Reference in New Issue
Block a user