git-assist

Docs.rs Crates.io Downloads Version

Synopsis

A friendly git assistant.

Installation

Install git-assist via:

bash cargo install git-assist

Usage

git-assist currently implements assistive features for the following git commands:

git bisect

git-assist currently implements the following commands related to git bisect:

git assist bisect skip-pull-requests [OPTIONS]

```terminal Usage: git-assist bisect skip-pull-requests [OPTIONS]

Options: --remote-url Remote url to fetch pull requests from --good A known "good" commit --bad A known "bad" commit --dry-run Perform a "dry" run -h, --help Print help ```

Most options can either be passed as command-line arguments or entered interactively, later on.

Why is the `skip-pull-requests`` sub-command useful?

Github supports three merging schemes:

All of these come with their pros and cons, when it comes to running git bisect to find the commit that introduced a bug.

So what if one could combine the convenience of "Squash and merge" with the history-preserving nature of "Rebase and merge"?

What the skip-pull-requests sub-command does:

  1. fetch all pull requests associated with the repository's remote URL.
  2. filter out any pull request that doesn't overlap with the good..bad commit range.
  3. runs (or merely prints, in case of --dry-run) git bisect skip base..head^ for each pull request.

The general usage of the skip-pull-requests sub-command looks something like this:

terminal git bisect start git assist bisect skip-pull-requests --good <GOOD> --bad <BAD> ... git bisect good <GOOD> git bisect bad <BAD> ...

Contributing

Please read CONTRIBUTING.md for details on our code of conduct,
and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MPL-2.0 – see the LICENSE.md file for details.