@typecad/typecad-gitdiff
Version:
See differences between two KiCAD PCB files
110 lines (75 loc) • 3.62 kB
Markdown
# typeCAD-gitdiff
> Visual PCB comparison tool for KiCAD files with interactive diff viewer
[Online Demo 🛺](https://typecad.net/gitdiff.html)
A tool that generates interactive HTML reports showing differences between KiCAD PCB files. Features include layer-by-layer comparison, multiple viewing modes, and customizable color schemes for highlighting changes.
## ✨ Features
- **Interactive Viewer**: Modern web-based interface with zoom, pan, and multiple view modes
- **Layer-by-Layer Analysis**: Compare individual PCB layers (copper, mask, paste, silkscreen, etc.)
- **Multiple View Modes**: Side-by-side, overlay, onion skin, swipe compare, and diff-only views
- **Customizable Colors**: Configure colors for modified and new features
- **Theme Support**: Can use KiCAD themes
- **Git Integration**: Integrate with git workflows
## 🚀 Getting Started
### Prerequisites
- **KiCAD v8 or later** - Required for PCB file processing
- **Node.js** - For running the tool
- **git** (optional) - For git integration features
### Installation
Install globally via npm:
```bash
npm i -g @typecad/typecad-gitdiff
```
## 📖 Usage
### Basic Comparison
```bash
typecad-gitdiff <original.kicad_pcb> <modified.kicad_pcb>
```
### Command Line Options
| Option | Description | Example |
|--------|-------------|---------|
| `--full` | Process all layers including User layers (User.1, User.2, etc.) | `--full` |
| `--theme <name>` | Specify KiCAD theme for SVG export | `--theme "Monokai"` |
| `--color-modified <hex>` | Color for modified features | `--color-modified "#ff6600"` |
| `--color-new <hex>` | Color for new features | `--color-new "#4caf50"` |
| `--help, -h` | Show help information | `--help` |
| `--version, -v` | Show version information | `--version` |
### Examples
```bash
# Basic comparison (standard layers only)
typecad-gitdiff board_v1.kicad_pcb board_v2.kicad_pcb
# Full comparison including all User layers
typecad-gitdiff --full board_v1.kicad_pcb board_v2.kicad_pcb
# Custom theme and colors
typecad-gitdiff --theme "typeCAD-light" \
--color-modified "#ff0000" \
--color-new "#00ff00" \
board_v1.kicad_pcb board_v2.kicad_pcb
```
## 🔗 Git Integration
Integrate with git to compare committed versions:
```bash
# Compare current file with last committed version
git difftool <file.kicad_pcb> --extcmd 'typecad-gitdiff'
# Full comparison with git
git difftool <file.kicad_pcb> --extcmd 'typecad-gitdiff --full'
# With custom colors in git
git difftool <file.kicad_pcb> --extcmd 'typecad-gitdiff --color-modified "#ff6600"'
```
## 🎨 Interactive Viewer Features
The generated HTML report includes:
- **Layer Selection**: Toggle individual PCB layers on/off
- **View Modes**:
- **Diff Only**: Show only the differences
- **Side by Side**: Original, differences, and modified views
- **Overlay**: Layered comparison with blend modes
- **Onion Skin**: Semi-transparent overlay
- **Swipe Compare**: Interactive left/right comparison
- **Zoom & Pan**: Zoom in/out/reset functions
- **Theme Toggle**: Switch between light and dark themes
- **Layer Transparency**: Adjust opacity for better visibility
- **Dark/Light Mode**: Helps with seeing changes
## 🔗 Links
- **Homepage**: [https://typecad.net/](https://typecad.net/)
- **Support**: [https://www.buymeacoffee.com/typecad](https://www.buymeacoffee.com/typecad)
---
*Part of the typeCAD ecosystem - bringing modern development practices to PCB design*