branch-party-0.1.1 is not a library.
🎉 Branch Party
A CLI tool for creating and maintaining "party branches" - automated git branch merging for development workflows.
What is Branch Party?
Branch Party automates the creation and maintenance of "party branches" - combined branches that merge multiple feature branches together for testing, staging, or integration purposes.
Key Features:
- 🚀 Automated Party Branch Creation: Combine multiple feature branches into party branches
- 🔄 Auto-Update on Commits: Party branches automatically update when member branches change
- 🛡️ Protection: Prevents direct commits to party branches
- 📋 Flexible Configuration: YAML-based configuration with support for complex merge strategies
- 🎯 Interactive Mode: Select branches interactively or configure via CLI
- 🔍 Conflict Resolution: Configurable conflict resolution strategies per file or globally
Status
✅ Fully Implemented
- Complete CLI with all core commands
- Git hooks for automatic updates (pre-commit, post-commit, post-merge)
- Party resolution and merge planning with cycle detection
- Advanced merge engine with conflict policies
- Configuration system with full precedence
- Interactive branch selection
- Auto-update functionality
- Protection against direct party branch commits
Installation
Via Cargo (Recommended)
From Source
Pre-built Binaries
Download from the releases page
Quick Start
1. Initialize in your repository
2. Configure your parties
# .git/branch-party/config.yaml
parties:
qa:
members:
- feature/user-auth
- feature/payments
merge_order: listed
conflict_policy:
default: manual
auto_update:
enabled: true
parties: all
3. Create party branches
4. Enable automatic updates
Now when you commit to feature/user-auth, the qa party branch automatically updates!
Commands
init- Initialize branch-party in current repositoryrun --party <name>- Create/update a party branchlist- Show all configured partiesplan --party <name>- Preview merge plan without executingvalidate- Validate configurationselect- Interactive branch selectioncompletions <shell>- Generate shell completions
Configuration
The tool creates .branch-party/config.yaml with this structure:
base_branch: main
parties:
qa:
members:
- feature/a
- feature/b
- "@payments" # Reference to another party
merge_order: listed # listed | newest_first | oldest_first
conflict_policy:
default: ours # ours | theirs | union | manual
overrides:
-
-
Architecture
branch_party_core- Core library with business logicbranch-party- CLI binary that uses the core library
Key modules:
config- Configuration structures and parsingconfig_loader- Multi-source configuration loading with precedencegit- Git repository operations via git2model- Data models for branches, merge plans, and repo statereport- Run report generation and serializationerror- Structured error types with context
Development
# Run tests
# Check code
# Format and lint
# Run with debug logging
RUST_LOG=debug
# Generate completions
License
MIT OR Apache-2.0