Skip to main content

Lightweight Google Drive file upload and version control CLI tool

Project description

GDVC Mini

PyPI version

Simple version control using Google Drive folders. Simplifes the process of quick iteration and dev sharing within drive.

A simplified midway between dvc/rclone.

Alternatives:

Rclone/DVC:

  1. Rclone/dvc require permissions for downloading and initial setup. This makes others testing a repo harder
  2. DVC also uses a custom file format and doesn't allow for quick downloading for testing

Git LFS:

  1. Limited file storage and no support for custom backends

Note: This is not intended for full model checkpoints, as each version currently duplicates the entire folder.

Install

pip install gdvc

dev Version:

pip install -e .

push to drive setup:

gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/drive

init your drive folder:

gdvc init https://drive.google.com/drive/folders/YOUR_FOLDER_ID

Usage

Track directories:

gdvc track add models
gdvc track add data
gdvc track list

Upload a version (to your configured private Google Drive folder):

gdvc upload v1

Download version:

gdvc download v1
gdvc download latest

Change to different Drive folder:

gdvc change_folder_root https://drive.google.com/drive/folders/NEW_FOLDER_ID

Commands

  • init <folder_url> - Initialize project
  • track add/remove/list - Manage tracked directories
  • upload <version> - Upload tracked directories as version
  • download <version> - Download version to current directory
  • change_folder_root <url> - Switch to new Drive folder, keep current version only
  • publish <version> - Make version public
  • update - Download latest version

File Structure

Uploads create: version_name/directory_name/files Downloads merge into current directory preserving structure.

Configuration

Project settings are stored in .gdvc_config.json which can be safely committed to git. Contains Drive folder URLs, version history, and tracked directories.

Sample config structure:

{
  "drive_folder_url": "https://drive.google.com/drive/folders/<sample_folder>",
  "versions": {
    "v1.0": {
      "url": "https://drive.google.com/drive/folders/<sample_folder>",
      "local_path": ".",
      "is_public": false
    },
   },
  "public_version": "v0",
  "current_version": "v1.0",
  "tracked_directories": ["models", "data"]
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gdvc-0.0.1.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gdvc-0.0.1-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file gdvc-0.0.1.tar.gz.

File metadata

  • Download URL: gdvc-0.0.1.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for gdvc-0.0.1.tar.gz
Algorithm Hash digest
SHA256 980d92191ba380035bf1fed2422994c11758cecf0e6dacbb3a96ddc74609004f
MD5 05a7540bd64474afe329d674ad876b77
BLAKE2b-256 0bc3c10772c3d40b2c1fa5b80a17b8981598e1c74d37dffd89274e09a88eb5ac

See more details on using hashes here.

File details

Details for the file gdvc-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: gdvc-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for gdvc-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e3e6ff309e01f741d39e12dc240551ed2279bb4a4efd11a6dee74e2f342f73f8
MD5 ea0b45f00ae9676eda1ae6699644ee37
BLAKE2b-256 cd55aebd7db8bfebb1297473e93910cbcb3527bbff4d3a083205a5fb49988ba6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page