Brancher
Brancher is a tool inspired by git flow that is more flexible in how it handles branching. It allows any configuration of branches and simply makes it easier to see which commits are in what branch, as well as advancing changes between branches. A typical branch layout may be like this:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ develop ├──▶│ staging ├──▶│ beta ├──▶│ master* │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
*production branch
Note: Brancher can handle other configurations, assuming there's one final "production" branch and any number of sequential pre-production branches to the left of it.
Installation
pip3 install gitbrancher
Available Commands
Commands:
- overview (o): Prints an overview of branches with outstanding commits
- forward (f): Fast forwards commits into branch
- backfix (b): Applies changes on more advanced branches to current one
- compare (c): Shows commits in one branch but not another
- init: Initialize repo
Add -h to any command for usage details.
Usage
Initialization
Let's start with an example of an empty repo.
Next, initialize Brancher. Brancher will store your branching model in your repository's local configuration.
Advancing commits
Now let's start some development work.
That looks good, so we'll advance that commit to staging, the next branch after develop.
While staging is having some Q/A work done, we'll continue development in develop:
Commit overview
With pending commits in develop and staging, let's get an overview of what commits exist where.
Backfilling hotfixes
With development work ongoing and Q/A happening on staging, let's make an urgent bugfix to production. As you can see, once that commit has been made, it only exists on the master branch, not other branches.
We want to bring that hotfix back into develop. After checking out develop, we'll apply the hotfix to develop too:
An overview confirms that the backfilled changes have been applied to develop, but not beta or staging:
We can remedy this by applying the hotfix to those environments, also:
Metadata
Release files for gitbrancher 1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| gitbrancher-1.2.1.tar.gz | 5.9 kB | Without provenance | Details for gitbrancher-1.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gitbrancher-1.2.1-py3-none-any.whl | Python 3 | none | any | Details for gitbrancher-1.2.1-py3-none-any.whl |
Total release size: 12.1 kB
Release files / gitbrancher-1.2.1.tar.gz
| Download URL | gitbrancher-1.2.1.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
85024b51020893c6116c834cd02b98a0d28dcc82ebb7a73ba0b9921f6156d96d
|
|
BLAKE2b-256 checksum How to use checksums |
8f86b642117ca6cc786243678d5e45f31d36705dda5a1b746375e4e151a97d34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.2.2 CPython/3.9.19 Linux/6.5.0-1023-azure
|
Release files / gitbrancher-1.2.1-py3-none-any.whl
| Download URL | gitbrancher-1.2.1-py3-none-any.whl |
|---|---|
| Size | 6.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f765cf0485cc9bb65cd95b929fbfabcc85d7de0900907dca88d99e7ee4fc3355
|
|
BLAKE2b-256 checksum How to use checksums |
20eab8ca65a798ea3c9f9af9e323cac37ed8c45e11724c59ec3d18e81b7a3dd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.2.2 CPython/3.9.19 Linux/6.5.0-1023-azure
|
Security for gitbrancher 1.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.