git-project - The extensible stupid project manager
Installation
pip install git-project pip install git-project-core-plugins
Description
git-project is a git extension to manage development of a project hosted in a git repository. By itself git-project does almost nothing. Its functionality is enhanced by plugins.
git-project-core-plugins provides a set of basic functionality and should almost always be installed alongside git-project.
Conventions
Symlinks identiy projects to the git-project command. For example, if git-fizzbin is symlinked to git-project, then git fizzbin <command> will invoke git-project with fizzbin as the “active project.” To emphasize this, we show git-project commands with a generic <project> identifier:
git <project> --help
Discussion
With git-project and its core plugins you can:
Initialize a development environment at clone time (or after clone time)
Manage branches
Manage worktrees
Set and invoke commands
git-project is intended to make switching between active ‘tasks’ in a repository simple and fast, without losing the progress context of existing tasks. For example the core plugins set up build environments such that switching among projects and worktrees does not result in “rebuilding the world.” Builds can be configured to invoke complex commands via a convenient name (e.g. git <project> build debug)
Substitution variables
Commands that allow substitution take a form {varname} in their configured textual representation and substitute it with the value of varname. varname can be any configured value under <project>, for example:
[project]
myvar = value
git-project has several built-in substitution variables that various commands and plugins can use:
- branch
The name of the currently checked-out branch
- gitdir
The value of GITDIR
- git_common_dir
The value of GIT_COMMON_DIR
- project
The value of <project>
License
git-project is distributed under the terms of the GNU General Public License v3.0 or later.
Release files for git-project 0.0.38
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| git_project-0.0.38.tar.gz | 65.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| git_project-0.0.38-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 119.7 kB
Release files / git_project-0.0.38.tar.gz
| Download URL | git_project-0.0.38.tar.gz |
|---|---|
| Size | 65.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e25b8a70a2a04fd7584b7ad4588f1ec12c88365ef4ac7c8de5fb16ff4198be5
|
|
BLAKE2b-256 checksum How to use checksums |
b5f28555ae2b0cd6fa3b3be9f5c31d86b962c5b833e271d333873c1c6a8ef2ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / git_project-0.0.38-py3-none-any.whl
| Download URL | git_project-0.0.38-py3-none-any.whl |
|---|---|
| Size | 54.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
68fc7c7d8ac3fc1c62190a26a108c800e5e5893180ea0f805bfe04460ff94f87
|
|
BLAKE2b-256 checksum How to use checksums |
7e659bec4e2b8f147124bfae1d45f9494c014ebb6fcce5f23c840c3552c463b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|