Skip to content

mrnossiom/git-leave

Repository files navigation

git-leave logo

Check for unsaved or uncommitted changes on your machine

Nix Powered git-leave crates.io version Matrix room at #git-leave:wiro.world

Installation

With cargo via crates.io

Install from repository with cargo:

cargo install git-leave
With nix flakes

A flake.nix is available which means that you can use github:mrnossiom/git-leave as a flake identifier, so you can.

  • import this repository in your flake inputs

    {
      git-leave.url = "github:mrnossiom/git-leave";
      git-leave.inputs.nixpkgs.follows = "nixpkgs";
    }

    Add the package to your NixOS or Home Manager packages depending on your installation.

  • use with nix shell/nix run for temporary testing

    e.g. nix shell github:mrnossiom/git-leave

  • use with nix profile for imperative installation

    e.g. nix profile install github:mrnossiom/git-leave

Package is reachable through packages.${system}.default or packages.${system}.git-leave.

Usage

Check for unsaved or uncommitted changes on your machine

Usage: git-leave [OPTIONS] [DIRECTORY]

Arguments:
  [DIRECTORY]  Directory to search in [default: .]

Options:
  -d, --default            Use default folder specified in git config for the directory to search in
      --follow-symlinks    Follow symlinks
      --show-directories   Show the directories we are actually crawling
      --threads <THREADS>  Number of cores to use for crawling [default: <num_cpus>]
      --check <CHECK>      Override checks to run on found repositories [possible values: dirty, ahead-branches, no-upstream-branches]
  -h, --help               Print help (see more with '--help')
  -V, --version            Print version

Examples

  • To check all repos under the current directory

    git leave
  • To check all repos under the specified directory

    git leave path/to/directory
  • To check all repos under the default directory (see config)

    git leave --default

Checks

  • dirty: Whether the repository has a dirty working copy
  • ahead-branches: List all branches that are ahead of their remote
  • no-upstream-branches: List all branches with no upstream

Config

Set the leaveTool.defaultFolder key in your git global configuration file to use the --default or -d flag.

In your global git config file (e.g. .config/git/config):

[git_leave]
    # Folder used when the `--default` flag is provided
    defaultFolder = ~/path/to/projects
    # Override checks to run on repositories.
    # This is used when checks report false positives for your setup. (e.g. Jujutsu)
    #
    # You can get the list in `--help`
    checks = dirty
    checks = ahead-branches

Credits

  • woobuc/sweep for many concepts I implemented here (e.g. threads, logging)

This work is licensed under CeCILL-2.1, a strong copyleft French OSS license. This license allows modification and distribution of the software while requiring the same license for derived works.

About

A cli tool to check which repo have dirty worktree or not pushed commits

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published