wlk 0.1.0

File-centric, event-sourced version control system with implicit branching
Documentation
# Contributing to WLK

Thank you for your interest in contributing to WLK! This document provides guidelines and instructions for contributing.

## Code of Conduct

Be respectful, constructive, and professional in all interactions.

## Getting Started

1. Fork the repository
2. Clone your fork: `git clone https://github.com/yourusername/wlk.git`
3. Create a feature branch: `git checkout -b feature/your-feature`
4. Make your changes
5. Run tests: `cargo test`
6. Run clippy: `cargo clippy`
7. Format code: `cargo fmt`
8. Commit with clear messages
9. Push and create a Pull Request

## Development Setup

### Prerequisites
- Rust 1.70 or later
- Cargo

### Building
```bash
cargo build
```

### Testing
```bash
# Run all tests
cargo test

# Run specific test
cargo test test_name

# Run with output
cargo test -- --nocapture
```

## Project Structure

```
wlk/
├── src/
│   ├── main.rs       # CLI interface
│   ├── lib.rs        # Library exports
│   ├── delta.rs      # Delta operations
│   ├── shadow.rs     # Shadow file management
│   ├── metalog.rs    # Directory event log
│   ├── wal.rs        # Write-ahead log
│   ├── repository.rs # Repository management
│   ├── config.rs     # Configuration
│   ├── diff.rs       # Diff display
│   └── utils.rs      # Utilities
├── tests/            # Integration tests
├── examples/         # Example programs
└── benches/          # Benchmarks
```

## Code Style

- Follow Rust conventions
- Run `cargo fmt` before committing
- Run `cargo clippy` and fix warnings
- Add tests for new features
- Document public APIs with `///` comments

## License

By contributing, you agree that your contributions will be dual-licensed under MIT and Apache-2.0.