Skip to main content

Zero-config, language-agnostic Git snapshots via tags

Project description

Git Checkpoints

🔄 Zero-config, language-agnostic Git snapshots via tags.

Tests PR Check License Version


🚀 Installation

Option 1: NPM Package

npm install -g git-checkpoints

Option 2: Python Package

pip install git-checkpoints

Option 3: Bash Script (One-Line Install)

curl -LsSf https://raw.githubusercontent.com/moussa-m/git-checkpoints/main/install.sh | bash

Both methods:

  • Install git-checkpoints into your PATH
  • Add git checkpoint / git checkpoints aliases in this repo
  • Schedule auto-snapshot every 5 minutes when changes exist (configurable)

❌ One-Line Uninstall

git-checkpoints uninstall

Removes the global CLI and all cron entries.


💻 Usage

Git aliases (in your repo)

git checkpoint [name]      # create a checkpoint
git checkpoints list       # list all checkpoints
git checkpoints delete *   # delete one or all
git checkpoints load <name># restore a checkpoint

Direct CLI

git-checkpoints create [name]
git-checkpoints list
git-checkpoints delete <name|*>
git-checkpoints load <name>
git-checkpoints auto
git-checkpoints pause              # pause auto-checkpointing
git-checkpoints resume             # resume auto-checkpointing
git-checkpoints config <get|set>   # manage configuration
git-checkpoints local-uninstall
git-checkpoints uninstall

⚙️ Configuration

Control auto-checkpointing behavior with the config command:

git-checkpoints config get                    # show all settings
git-checkpoints config get interval           # show current interval
git-checkpoints config get status             # show current status
git-checkpoints config set interval 10        # set interval to 10 minutes

Available options:

  • interval - Auto-checkpoint interval in minutes (default: 5)
  • status - Current status: paused or running

Examples:

# Set checkpoints every 15 minutes
git-checkpoints config set interval 15
git-checkpoints resume  # apply new interval

# Check current configuration
git-checkpoints config get
# Output:
# ℹ️ Current configuration:
#   interval: 15 minutes
#   status: running

🧪 Testing & Development

This project includes a comprehensive test suite that runs automatically on GitHub Actions.

Running Tests Locally

# Run all tests
cd tests
./run_all_tests.sh

# Run specific test categories
./unit_tests.sh                                    # Unit tests
./integration_test.sh                              # GitHub integration tests
./test_scenarios/basic_workflow_test.sh            # Workflow tests
./test_scenarios/cron_auto_checkpoint_test.sh      # Cron job tests
./test_scenarios/cron_seconds_test.sh              # 10-second interval tests

# Clean up test artifacts
./cleanup_all_tests.sh

Test Coverage

  • Unit Tests: Individual function testing
  • Integration Tests: Real GitHub repository creation and management
  • Workflow Tests: Typical development scenarios
  • Cron Tests: Automatic checkpoint functionality with various intervals
  • Installation Tests: Complete installation process verification

GitHub Actions

The project uses GitHub Actions for continuous integration:

  • Full Test Suite: Runs on push to main branch
  • PR Quick Check: Fast tests for pull requests
  • Seconds Interval Test: Extended testing with 10-second intervals (triggered by test-seconds label)

Prerequisites for Local Testing

  • Git
  • GitHub CLI (gh) with authentication
  • Bash 4.0+
  • crontab (optional, for cron tests)

🛠 Troubleshooting

  • git-checkpoints not found? Ensure your install dir (e.g. ~/.local/bin) is in $PATH.

  • No snapshots?

    • Check uncommitted changes: git status
    • Trigger one manually: git checkpoint
  • Cron not running?

    • Verify service: systemctl status cron
    • Check crontab: crontab -l | grep git-checkpoints

Enjoy effortless, zero-config backups of your work-in-progress!

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

git_checkpoints-2.0.3.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

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

git_checkpoints-2.0.3-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file git_checkpoints-2.0.3.tar.gz.

File metadata

  • Download URL: git_checkpoints-2.0.3.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.9

File hashes

Hashes for git_checkpoints-2.0.3.tar.gz
Algorithm Hash digest
SHA256 dc524ca172f82a98ba8091eb402d955320ee32da0e6b58aa7b38c32d50c89034
MD5 42bbad159bd3ff3e197cfe87bc7a4605
BLAKE2b-256 e5c0eeb23e6e0299c85392c6be8ac4cf0be7a679a984dcf661676c16b8e66cb8

See more details on using hashes here.

File details

Details for the file git_checkpoints-2.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for git_checkpoints-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 930e4db9a012cf2125f6fa059b808f9f42cfed6415ee21f4a519ff8099efb3e7
MD5 0808f1611db90c47a2106cb1390f8a4f
BLAKE2b-256 63749d6d895c662aef80833c607cfb56df50293869f3fc9b7d3d2dd978af4f45

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