Skip to content

v0.3.0 - Two-Phased Interactive Sync

Choose a tag to compare

@DamianReeves DamianReeves released this 30 Aug 23:20
· 6 commits to main since this release
0270e45

πŸŽ‰ Release v0.3.0

This release introduces the Two-Phased Interactive Sync feature along with comprehensive improvements to the sync-tools ecosystem.

✨ Major Features

Two-Phased Interactive Sync

  • Plan Generation: Generate editable sync plans before execution
  • Visual Aliases: Intuitive direction indicators (<<, >>, <>)
  • Plan Execution: Execute plans with full control over operations
  • Conflict Detection: Automatic detection and resolution strategies

Enhanced Sync Capabilities

  • Merge Tool Integration: External merge tool support for conflict resolution
  • Markdown Reports: Generate detailed sync operation reports
  • Git Patch Generation: Create git patches instead of direct synchronization
  • sync from Command: New convenience subcommand for quick syncs

πŸš€ Improvements

Testing & Quality

  • 100% BDD Coverage: All 41 scenarios passing with 261 steps
  • Test Architecture: Implemented Test Driver and Object Mother patterns
  • @wip Tag Support: Filter work-in-progress test scenarios
  • Comprehensive Validation: Enhanced test validation and error handling

Conflict Resolution

  • Multiple Strategies: newest-wins, source-wins, dest-wins, backup
  • Binary File Handling: Automatic detection and appropriate resolution
  • Detailed Logging: Enhanced conflict resolution logging

πŸ› Bug Fixes

  • Fixed critical dry-run mode to prevent unintended file operations
  • Fixed git patch file path resolution in BDD tests
  • Fixed SyncFile path resolution and git protection issues
  • Fixed rsync output parsing for accurate plan generation
  • Improved .gitignore to prevent test artifacts in working tree

πŸ“Š Statistics

  • Changed Files: 20
  • Lines Added: 5,306
  • Lines Removed: 251
  • Test Coverage: 100% BDD step definitions

πŸ”§ Technical Details

Plan File Format

<< file src/main.js      17B  2025-08-30T10:35:00  [new-in-source]
>> file config/db.yml    15B  2025-08-30T10:00:00  [new-in-dest]
<> file config/app.yml   13B  2025-08-30T10:30:00  [conflict]

Usage Examples

# Generate a sync plan
sync-tools sync --source ./src --dest ./dest --plan sync.plan

# Execute a sync plan
sync-tools sync --apply-plan sync.plan

# Generate markdown report
sync-tools sync --source ./src --dest ./dest --report changes.md

# Create git patch
sync-tools sync --source ./src --dest ./dest --patch changes.patch

πŸ“ Full Changelog

  • 0270e45 Fix BDD test failures and enhance two-phased interactive sync (#15)
  • 1e68394 feat: Two-phased interactive sync with merge tool integration (#14)
  • b114631 feat: update release workflow for Go implementation
  • 84e447c Fix BDD tests for Go implementation (#13)

πŸ™ Acknowledgments

Thanks to all contributors who made this release possible!


Full Documentation: https://damianreeves.github.io/sync-tools/
Report Issues: https://github.com/DamianReeves/sync-tools/issues