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.2.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.2-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gdvc-0.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 884eedd5102334c1092fcf2f817b739daf54a6e13029862e88313da8cec531d7
MD5 d8494fac43b47eb4b4ddae7aed6913ca
BLAKE2b-256 8cfd6cd3dbc6b49a7e402cca994fed4b1632bd51f3f54e647aa2fee4055b8cc5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gdvc-0.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9fddd1af67010135d1b58b0d55116fa054e13ea916de16e83d4f0b011f252d41
MD5 4d22623638a722faa7b462bf648555c3
BLAKE2b-256 077255b30e047b0ac221b65356fb218de0259fcfa377c880960a090edeb1ecae

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