Skip to main content

A git development workspace manager

Project description

GitSpaces

PyPI version Tests License: MIT Python 3.8+

Manage multiple independent clones of a git repository. Similar to ClearCase Views but for Git.

Work on multiple features, branches, or experiments simultaneously without branch switching overhead. Each "space" is an independent clone of your repository.

Note: This project is currently at v3. It has evolved through several major iterations over the past 7 years — originally implemented as a collection of Bash scripts (v1), then rewritten in Go (v2), and now implemented in Python (v3). The prior v1/v2 repositories are archived and available at https://github.com/davfive/gitspaces.golang.

Features

  • Multiple independent clones per repository
  • Fast switching between workspaces
  • Inactive spaces can be put to "sleep"
  • Add more clones on demand
  • Direct editor integration

Installation

pip install gitspaces

Or from source:

git clone https://github.com/davfive/gitspaces.git
cd gitspaces
pip install -e .

Quick Start

Configure project paths and editor:

gitspaces setup

Clone a repository with multiple workspaces:

gitspaces clone https://github.com/user/repo.git -n 3

Creates:

projects/repo/
├── __GITSPACES_PROJECT__
├── main/          # active workspace
└── .zzz/          # sleeping workspaces
    ├── zzz-0/
    ├── zzz-1/
    └── zzz-2/

Basic operations:

gitspaces switch              # switch workspace
gitspaces sleep               # sleep active, wake another
gitspaces rename old new      # rename workspace
gitspaces extend -n 2         # add 2 more clones
gitspaces code                # open in editor

Commands

gitspaces setup                           # configure project paths, editor
gitspaces clone <url> [-n N] [-d DIR]     # clone repo with N workspaces
gitspaces switch [SPACE]                  # switch workspace (interactive if no arg)
gitspaces sleep [SPACE]                   # sleep workspace, optionally wake another
gitspaces rename OLD NEW                  # rename workspace
gitspaces extend -n N [SOURCE]            # add N more clones
gitspaces code [SPACE]                    # open workspace in editor
gitspaces config [KEY] [VALUE]            # view/set configuration

Configuration

Default location: ~/.gitspaces/config.yaml

project_paths:
  - /home/user/projects
default_editor: code

Contributing

See CONTRIBUTING.md.

Deployment

Maintainers: see README.DEPLOYMENT.md for PyPI deployment.

License

MIT - see LICENSE.

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

gitspaces-3.0.0a1.tar.gz (25.2 kB view details)

Uploaded Source

Built Distribution

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

gitspaces-3.0.0a1-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file gitspaces-3.0.0a1.tar.gz.

File metadata

  • Download URL: gitspaces-3.0.0a1.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitspaces-3.0.0a1.tar.gz
Algorithm Hash digest
SHA256 ae965ca9160ea1b86539579699a7b6631aa000156c8a082a933bda1e8e91fa3a
MD5 95b94fd9acb968465b7949d69f521386
BLAKE2b-256 08908bca1b4422719c22b87f1eb7d4a2231be5df475814588ab36d65cfc72893

See more details on using hashes here.

File details

Details for the file gitspaces-3.0.0a1-py3-none-any.whl.

File metadata

  • Download URL: gitspaces-3.0.0a1-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitspaces-3.0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 000805a1eb434d8a4a5ba0156d85b486e732d747239e872df7f4704c4a127a25
MD5 55509faeb3c6fd35808280f20429a8e6
BLAKE2b-256 4d28d0301b3eac47f31129cad9dae8cce52877fa715beb0ef1c96246ae227e4c

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