Zero-config, language-agnostic Git snapshots via tags
Project description
Git Checkpoints
🔄 Zero-config, language-agnostic Git snapshots via tags.
🚀 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-checkpointsinto yourPATH - Add
git checkpoint/git checkpointsaliases 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:pausedorrunning
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-secondslabel)
Prerequisites for Local Testing
- Git
- GitHub CLI (
gh) with authentication - Bash 4.0+
- crontab (optional, for cron tests)
🛠 Troubleshooting
-
git-checkpointsnot found? Ensure your install dir (e.g.~/.local/bin) is in$PATH. -
No snapshots?
- Check uncommitted changes:
git status - Trigger one manually:
git checkpoint
- Check uncommitted changes:
-
Cron not running?
- Verify service:
systemctl status cron - Check crontab:
crontab -l | grep git-checkpoints
- Verify service:
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc524ca172f82a98ba8091eb402d955320ee32da0e6b58aa7b38c32d50c89034
|
|
| MD5 |
42bbad159bd3ff3e197cfe87bc7a4605
|
|
| BLAKE2b-256 |
e5c0eeb23e6e0299c85392c6be8ac4cf0be7a679a984dcf661676c16b8e66cb8
|
File details
Details for the file git_checkpoints-2.0.3-py3-none-any.whl.
File metadata
- Download URL: git_checkpoints-2.0.3-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
930e4db9a012cf2125f6fa059b808f9f42cfed6415ee21f4a519ff8099efb3e7
|
|
| MD5 |
0808f1611db90c47a2106cb1390f8a4f
|
|
| BLAKE2b-256 |
63749d6d895c662aef80833c607cfb56df50293869f3fc9b7d3d2dd978af4f45
|