Files
beads/ATTRIBUTION.md
Steve Yegge 3c6f83470c feat: Vendor beads-merge 3-way merge algorithm (bd-oif6)
- Integrated @neongreen's beads-merge into internal/merge/
- Adapted to use bd's internal/types.Issue instead of custom types
- Added comprehensive tests covering merge scenarios
- Created ATTRIBUTION.md crediting @neongreen
- All tests pass

This solves:
- Multi-workspace deletion sync (bd-hv01)
- Git JSONL merge conflicts
- Field-level intelligent merging

Original: https://github.com/neongreen/mono/tree/main/beads-merge
2025-11-05 18:53:00 -08:00

1.3 KiB

Attribution and Credits

beads-merge 3-Way Merge Algorithm

The 3-way merge functionality in internal/merge/ is based on beads-merge by @neongreen.

What We Vendored

The core merge algorithm from beads-merge has been adapted and integrated into bd:

  • Field-level 3-way merge logic
  • Issue identity matching (id + created_at + created_by)
  • Dependency and label merging with deduplication
  • Timestamp handling (max wins)
  • Deletion detection
  • Conflict marker generation

Changes Made

  • Adapted to use bd's internal/types.Issue instead of custom types
  • Integrated with bd's JSONL export/import system
  • Added support for bd-specific fields (Design, AcceptanceCriteria, etc.)
  • Exposed as bd merge CLI command and library API

License

The original beads-merge code is used with permission from @neongreen. We are grateful for their contribution to the beads ecosystem.

Thank You

Special thanks to @neongreen for building beads-merge and graciously allowing us to integrate it into bd. This solves critical multi-workspace sync issues and makes beads much more robust for collaborative workflows.