wvc

command module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2026 License: MIT Imports: 2 Imported by: 0

README

██╗    ██╗██╗   ██╗ ██████╗
██║    ██║██║   ██║██╔════╝
██║ █╗ ██║██║   ██║██║
██║███╗██║╚██╗ ██╔╝██║
╚███╔███╔╝ ╚████╔╝ ╚██████╗
 ╚══╝╚══╝   ╚═══╝   ╚═════╝

Weaviate Version Control
A git-like CLI tool for version controlling Weaviate databases

Go Version Release License

Installation

Homebrew (macOS/Linux)

brew install kilupskalvis/tap/wvc

Install Script

curl -sSL https://raw.githubusercontent.com/kilupskalvis/wvc/main/install.sh | sh

Go Install

go install github.com/kilupskalvis/wvc@latest

Manual Download

Download the latest binary from GitHub Releases.

Build from Source

git clone https://github.com/kilupskalvis/wvc.git
cd wvc
make build

Quick Start

wvc init --url http://localhost:8080    # Initialize tracking
wvc status                               # Check for changes
wvc add .                                # Stage all changes
wvc commit -m "Initial data load"        # Commit
wvc log                                  # View history
wvc revert HEAD                          # Undo last commit

Commands

Command Description
wvc init --url <url> Initialize a new WVC repository
wvc status Show uncommitted changes
wvc add [<class> | <class>/<id> | .] Stage changes for commit
wvc reset [<class>/<id>] Unstage changes
wvc commit -m "<message>" [-a] Commit staged changes
wvc diff [--stat] Show detailed changes
wvc log [--oneline] [-n <count>] Show commit history
wvc show [<commit>] Show commit details
wvc revert <commit> Revert a commit

Features

  • Staging area: Git-like add/reset workflow for selective commits
  • Vector tracking: Detects property-only, vector-only, or combined changes
  • Exact restoration: Vectors restored bit-for-bit on revert
  • Deduplication: Identical vectors stored once via content-addressable storage

How It Works

  1. wvc init snapshots the current Weaviate state
  2. wvc status compares current state against last known state
  3. Changes are recorded as operations (insert, update, delete)
  4. wvc revert replays operations in reverse

Data is stored locally in .wvc/:

  • config - Weaviate URL and server version
  • wvc.db - SQLite database with commits and vector blobs

Requirements

  • Go 1.21+
  • Weaviate 1.14+

Development

make setup    # Install git hooks
make test     # Run tests
make check    # Run all pre-commit checks

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
cli
Package cli implements the command-line interface for WVC.
Package cli implements the command-line interface for WVC.
config
Package config manages WVC configuration and the .wvc directory structure.
Package config manages WVC configuration and the .wvc directory structure.
core
Package core implements the domain logic for WVC including diff computation, commit creation, and revert operations.
Package core implements the domain logic for WVC including diff computation, commit creation, and revert operations.
models
Package models defines the core data structures used throughout WVC including Weaviate objects, operations, and commits.
Package models defines the core data structures used throughout WVC including Weaviate objects, operations, and commits.
store
Package store provides SQLite-based persistence for WVC.
Package store provides SQLite-based persistence for WVC.
weaviate
Package weaviate provides a client wrapper for interacting with Weaviate.
Package weaviate provides a client wrapper for interacting with Weaviate.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL