Skip to main content

uvrev

uvrev is a CLI tool that wraps the uv package manager and adds git-based, conda-style revision tracking for Python environments.

It allows you to manage UV projects as isolated environments with a full, inspectable revision history. Every package change (add, remove, update) creates a new Git commit and tag, making it easy to understand what changed and to roll back to any previous state.


Overview

  • Manage UV environments with automatic revision tracking
  • Track dependency changes over time using Git
  • Restore environments to any previous revision
  • Inspect package history in a familiar conda-style format

Each environment is stored as a Git repository. Dependency changes are committed automatically, providing a complete and auditable history of your environment state.


Installation

Prerequisites

  • git
  • uv

Install with uv

uv tool install uvrev

After installation, ensure that uvrev is available on your PATH:

uvrev --help

Key Features

  • Conda-style revision history showing added, removed, and updated packages
  • Git-based storage with automatic commits and tags
  • Rollback to any previous revision
  • Detailed changelog tracking both dependencies and pinned versions

Commands

Command Description
uvrev env create Create a new UV project with revision tracking
uvrev env list List all UV projects
uvrev add Add packages to the current project
uvrev remove Remove packages from the current project
uvrev sync Sync project dependencies
uvrev list List installed packages in the current environment
uvrev history Show revision history with package changes
uvrev restore Restore project to a specific revision
uvrev path Show the path to the current project
uvrev run Run uv commands in the project

Environment Selection

uvrev determines the active environment based on the currently activated virtual environment.

Activate an environment as usual:

source .venv/bin/activate

Once activated, all uvrev commands operate on that environment automatically. No additional flags or environment variables are required.

This mirrors standard Python workflows and avoids implicit global state.


Examples

uvrev env create myproject --python 3.12

# activate venv
source "$(uvrev path -e myproject)/.venv/bin/activate"

uvrev add pandas numpy
uvrev add requests

uvrev list
uvrev history
uvrev restore 3
uvrev run pip list

Why uvrev?

uvrev combines the speed and simplicity of uv with the safety and transparency of Git, giving you:

  • Reproducible environments
  • Clear insight into dependency changes
  • Confidence to experiment, knowing you can always roll back

Metadata

Release files for uvrev 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uvrev 0.1.4
File Size Uploaded
uvrev-0.1.4.tar.gz 48.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uvrev 0.1.4
File Interpreter ABI Platform
uvrev-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 61.9 kB

Release files / uvrev-0.1.4.tar.gz

Download URL uvrev-0.1.4.tar.gz
Size 48.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8992d152505f17dfc1e00018c57fab29574229886d46797172765f62405538f8
BLAKE2b-256 checksum
How to use checksums
50963e5704143ed560431617e723cbd7ded77c66b9eff6b2d1bfccabad32f459
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.23 {"installer":{"name":"uv","version":"0.9.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / uvrev-0.1.4-py3-none-any.whl

Download URL uvrev-0.1.4-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9c62f74185673c9580aa325d1260bd27a0032f95c43628057af53152905fab5
BLAKE2b-256 checksum
How to use checksums
5da477c5785ad427719dd003bea2bbff21b42384b3d280c1194e24b7905ecc09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.23 {"installer":{"name":"uv","version":"0.9.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page