Skip to main content

Git Branch Stacking Utility

Project description

Panqake - Git Branch Stacking Utility

Panqake is a set of shell utilities for implementing the git-stacking workflow. It helps manage stacked branches, making it easier to work with multiple dependent pull requests.

Installation

  1. Clone this repository:

    git clone https://github.com/yourusername/panqake.git
    
  2. Add the panqake directory to your PATH or create symlinks to the panqake script in a directory that's already in your PATH.

  3. Dependencies:

    • jq: For JSON processing
    • gh: GitHub CLI (optional, only needed for PR creation)

Usage

Create a new branch in the stack

panqake new feature-login

This creates a new branch based on your current branch and tracks the relationship.

View the branch stack

panqake list

Displays a tree view of your current branch stack.

Update branches after changes

panqake update

After making changes to a branch, this command rebases all child branches to incorporate your changes.

Delete a branch and relink the stack

panqake delete feature-old

Deletes a branch and relinks its children to its parent, maintaining the stack structure.

Create PRs for the branch stack

panqake pr

Creates pull requests for each branch in the stack, starting from the bottom.

Workflow Example

  1. Start a new feature stack from main:

    git checkout main
    panqake new feature-base
    
  2. Make your initial changes and commit.

  3. Create a dependent branch for additional work:

    panqake new feature-ui
    
  4. Make changes and commit in the feature-ui branch.

  5. If you need to update the feature-base branch:

    git checkout feature-base
    # Make changes and commit
    panqake update
    
  6. Create PRs for your stack:

    panqake pr
    

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Changelog

v0.1.1 (Unreleased)

  • Switched CLI interface from prompt_toolkit to questionary for improved user experience
  • Enhanced command-line prompts with better styling and autocomplete
  • Fixed styling issues in branch listing display
  • Improved output formatting for colored text
  • Added custom color scheme that works well on both light and dark terminals
  • Added documentation for the style system

v0.1.0

  • Initial release with core functionality
  • Branch stacking management
  • PR creation support

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

panqake-0.1.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

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

panqake-0.1.0-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file panqake-0.1.0.tar.gz.

File metadata

  • Download URL: panqake-0.1.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for panqake-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1e35e58c9943e468110369d51907ae3b1cb714f54132f7694ce8e4e80a06965a
MD5 791c5214ffde3e61f1958f091cf869db
BLAKE2b-256 80f1b82f8b829197804839314bccab2a22c1b3200830f7752379111a2bf4049d

See more details on using hashes here.

File details

Details for the file panqake-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: panqake-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for panqake-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 092454db3c6901c6a94696108a89feaf6476c899dd32077852802594d30b67cb
MD5 c19dc08bf43b796429a28b5a01092961
BLAKE2b-256 fb41bc49aca03622d933cb470ee963c26f726973b89d3606da4049d775ee89cf

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