gst


Namegst JSON
Version 0.1.13 PyPI version JSON
download
home_pagehttps://github.com/cpagravel/gst-python
SummaryGit status tool
upload_time2025-07-17 05:49:01
maintainerNone
docs_urlNone
authorChris Gravel
requires_python>=3.6
licenseMIT
keywords git git status git workflow
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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
```
![Initial git status](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-01-status.svg)

```bash
$ gst 1            # Get file path by reference
```
![File reference output](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-02-reference.svg)

```bash
$ gst -a 0         # Add files to staging area
```
![After adding file](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-03-after-add.svg)

```bash
$ gst -r 0         # Reset staged changes
```
![After reset](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-04-after-reset.svg)

```bash
$ gst -c 1         # Checkout files to revert changes
```
![After checkout](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-05-after-checkout.svg)

```bash
$ gst -D 2         # Delete files at index
```
![After delete](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-06-after-delete.svg)

```bash
$ gst -d 1         # View file differences
```
![Git diff output](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-07-diff.svg)

```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![Initial git status](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-01-status.svg)\n\n```bash\n$ gst 1            # Get file path by reference\n```\n![File reference output](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-02-reference.svg)\n\n```bash\n$ gst -a 0         # Add files to staging area\n```\n![After adding file](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-03-after-add.svg)\n\n```bash\n$ gst -r 0         # Reset staged changes\n```\n![After reset](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-04-after-reset.svg)\n\n```bash\n$ gst -c 1         # Checkout files to revert changes\n```\n![After checkout](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-05-after-checkout.svg)\n\n```bash\n$ gst -D 2         # Delete files at index\n```\n![After delete](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-06-after-delete.svg)\n\n```bash\n$ gst -d 1         # View file differences\n```\n![Git diff output](https://raw.githubusercontent.com/cpagravel/gst-python/master/docs/images/demo-07-diff.svg)\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"
}
        
Elapsed time: 0.44625s