# gst [![MIT License][license-badge]](https://github.com/cpagravel/gst-python/blob/master/LICENSE.md) [![Tests][tests-badge]][tests-url] [![Coverage][coverage-badge]][coverage-url]
## Synposis
gst is short for **G**it **St**atus - it's a commandline app with some neat features for improving your workflow with git
Note that gst is meant for in dark themed terminals
## Installation
Install from pip.
```
pip install gst
```
## Usage
```bash
$ gst # View git status
```

```bash
$ gst 1 # Get file path by reference
```

```bash
$ gst -a 0 # Add files to staging area
```

```bash
$ gst -r 0 # Reset staged changes
```

```bash
$ gst -c 1 # Checkout files to revert changes
```

```bash
$ gst -D 2 # Delete files at index
```

```bash
$ gst -d 1 # View file differences
```

```bash
$ gst -e 1 # Open file in editor
```
```bash
# Use file references with other commands
$ cat $(gst 1) # Display contents of file at index 1
$ vim $(gst 1) # Open file at index 1 in vim
```
### Range and selection syntax
All commands that accept `REF_RANGE` support flexible selection patterns:
| Pattern | Description | Example |
|---------|-------------|---------|
| `0,2,4` | Specific indices | `gst -a 0,2,4` |
| `1:3` | Range (inclusive) | `gst -r 1:3` |
| `2:` | Unbounded range | `gst -c 2:` |
| `0,2:4,6` | Mixed patterns | `gst -D 0,2:4,6` |
## Contributing
Contributions are welcome! See [CONTRIBUTING.md](https://github.com/cpagravel/gst-python/blob/master/CONTRIBUTING.md) for development setup, testing guidelines, and how to contribute to the project.
## Compatibility
- Linux, Mac, Windows
- Git version >=2
- Python 3.8+ (fully tested and supported)
- Python 3.6, 3.7 (best-effort support with manual testing)
### Python Version Support Policy
- **Python 3.8+**: Fully supported with automated testing in CI/CD
- **Python 3.6, 3.7**: Best-effort support with periodic manual testing for compatibility
Due to [GitHub Actions dropping support for Python 3.6 and 3.7](https://github.com/actions/runner-images/issues/10893), we can no longer provide automated testing for these versions. However, we will continue to maintain compatibility when possible and provide periodic updates with manual testing to confirm functionality.
## Performance Optimization
Since `gst` relies on `git status`, optimizing git performance will directly improve `gst` performance. These settings can provide 50-75% faster operations for large repositories:
```bash
# Enable all git performance optimizations
git config core.fsmonitor true # File system monitor (Windows/macOS only)
git config core.untrackedCache true # Cache untracked file detection
git config feature.manyFiles true # Optimize for large repositories
```
**Features:**
- **FSMonitor**: Background file monitoring, up to 75% faster (not supported on Linux)
- **Untracked Cache**: Faster detection of untracked files
- **feature.manyFiles**: Optimized index format for repositories with many files
**Note:** FSMonitor provides the biggest performance boost for large repositories but may add overhead for small repositories.
[license-badge]: https://img.shields.io/badge/license-MIT-007EC7.svg
[tests-badge]: https://github.com/cpagravel/gst-python/workflows/Tests/badge.svg
[tests-url]: https://github.com/cpagravel/gst-python/actions/workflows/test.yml
[coverage-badge]: https://codecov.io/gh/cpagravel/gst-python/branch/master/graph/badge.svg
[coverage-url]: https://codecov.io/gh/cpagravel/gst-python
Raw data
{
"_id": null,
"home_page": "https://github.com/cpagravel/gst-python",
"name": "gst",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "git, git status, git workflow",
"author": "Chris Gravel",
"author_email": "Chris Gravel <cpagravel@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/38/ca/698f878599c20d11e38bdc493593b4d8d5a332671e805aed74616835c549/gst-0.1.13.tar.gz",
"platform": null,
"description": "# gst [![MIT License][license-badge]](https://github.com/cpagravel/gst-python/blob/master/LICENSE.md) [![Tests][tests-badge]][tests-url] [![Coverage][coverage-badge]][coverage-url]\n\n## Synposis\ngst is short for **G**it **St**atus - it's a commandline app with some neat features for improving your workflow with git\nNote that gst is meant for in dark themed terminals\n\n## Installation\nInstall from pip.\n```\npip install gst\n```\n\n## Usage\n\n```bash\n$ gst # View git status\n```\n\n\n```bash\n$ gst 1 # Get file path by reference\n```\n\n\n```bash\n$ gst -a 0 # Add files to staging area\n```\n\n\n```bash\n$ gst -r 0 # Reset staged changes\n```\n\n\n```bash\n$ gst -c 1 # Checkout files to revert changes\n```\n\n\n```bash\n$ gst -D 2 # Delete files at index\n```\n\n\n```bash\n$ gst -d 1 # View file differences\n```\n\n\n```bash\n$ gst -e 1 # Open file in editor\n```\n\n```bash\n# Use file references with other commands\n$ cat $(gst 1) # Display contents of file at index 1\n$ vim $(gst 1) # Open file at index 1 in vim\n```\n\n### Range and selection syntax\nAll commands that accept `REF_RANGE` support flexible selection patterns:\n\n| Pattern | Description | Example |\n|---------|-------------|---------|\n| `0,2,4` | Specific indices | `gst -a 0,2,4` |\n| `1:3` | Range (inclusive) | `gst -r 1:3` |\n| `2:` | Unbounded range | `gst -c 2:` |\n| `0,2:4,6` | Mixed patterns | `gst -D 0,2:4,6` |\n\n## Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](https://github.com/cpagravel/gst-python/blob/master/CONTRIBUTING.md) for development setup, testing guidelines, and how to contribute to the project.\n\n## Compatibility\n- Linux, Mac, Windows\n- Git version >=2\n- Python 3.8+ (fully tested and supported)\n- Python 3.6, 3.7 (best-effort support with manual testing)\n\n### Python Version Support Policy\n- **Python 3.8+**: Fully supported with automated testing in CI/CD\n- **Python 3.6, 3.7**: Best-effort support with periodic manual testing for compatibility\n\nDue to [GitHub Actions dropping support for Python 3.6 and 3.7](https://github.com/actions/runner-images/issues/10893), we can no longer provide automated testing for these versions. However, we will continue to maintain compatibility when possible and provide periodic updates with manual testing to confirm functionality.\n\n## Performance Optimization\n\nSince `gst` relies on `git status`, optimizing git performance will directly improve `gst` performance. These settings can provide 50-75% faster operations for large repositories:\n\n```bash\n# Enable all git performance optimizations\ngit config core.fsmonitor true # File system monitor (Windows/macOS only)\ngit config core.untrackedCache true # Cache untracked file detection\ngit config feature.manyFiles true # Optimize for large repositories\n```\n\n**Features:**\n- **FSMonitor**: Background file monitoring, up to 75% faster (not supported on Linux)\n- **Untracked Cache**: Faster detection of untracked files\n- **feature.manyFiles**: Optimized index format for repositories with many files\n\n**Note:** FSMonitor provides the biggest performance boost for large repositories but may add overhead for small repositories.\n\n[license-badge]: https://img.shields.io/badge/license-MIT-007EC7.svg\n[tests-badge]: https://github.com/cpagravel/gst-python/workflows/Tests/badge.svg\n[tests-url]: https://github.com/cpagravel/gst-python/actions/workflows/test.yml\n[coverage-badge]: https://codecov.io/gh/cpagravel/gst-python/branch/master/graph/badge.svg\n[coverage-url]: https://codecov.io/gh/cpagravel/gst-python\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Git status tool",
"version": "0.1.13",
"project_urls": {
"Download": "https://github.com/cpagravel/gst-python/archive/0.1.13.tar.gz",
"Homepage": "https://github.com/cpagravel/gst-python",
"Repository": "https://github.com/cpagravel/gst-python"
},
"split_keywords": [
"git",
" git status",
" git workflow"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "dedf1ddefac1aab880092f4e6cf7f26448011af6d841faf90045aa97b1e31220",
"md5": "1b78545e8259d15eccddaa7d22530106",
"sha256": "c1b4cbe7a372b6ebfb531dab6f515fb461f799bed62605bbfad07acb220ca8f7"
},
"downloads": -1,
"filename": "gst-0.1.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1b78545e8259d15eccddaa7d22530106",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 8379,
"upload_time": "2025-07-17T05:49:00",
"upload_time_iso_8601": "2025-07-17T05:49:00.053982Z",
"url": "https://files.pythonhosted.org/packages/de/df/1ddefac1aab880092f4e6cf7f26448011af6d841faf90045aa97b1e31220/gst-0.1.13-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "38ca698f878599c20d11e38bdc493593b4d8d5a332671e805aed74616835c549",
"md5": "67d1d4fab9fab9bd6b5bd4c869804071",
"sha256": "38bcdcb1ce385b6cbe162e5df404e697db79eb0be9b5e8b3355508eb9af54157"
},
"downloads": -1,
"filename": "gst-0.1.13.tar.gz",
"has_sig": false,
"md5_digest": "67d1d4fab9fab9bd6b5bd4c869804071",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 18423,
"upload_time": "2025-07-17T05:49:01",
"upload_time_iso_8601": "2025-07-17T05:49:01.131872Z",
"url": "https://files.pythonhosted.org/packages/38/ca/698f878599c20d11e38bdc493593b4d8d5a332671e805aed74616835c549/gst-0.1.13.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-17 05:49:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cpagravel",
"github_project": "gst-python",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "gst"
}