Project

herdsman

0.0
No commit activity in last 3 years
No release in over 3 years
Herdsman is a CLI utility for working with multiple Git repositories
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

~> 0.19.0
 Project Readme

Herdsman

Gem Version Build Status Code Climate Test Coverage

Herdsman is a command line utility for working with multiple Git repositories.

Installation

gem install herdsman

Usage

Commands:
  herdsman help [COMMAND]  # Describe available commands or one specific command
  herdsman status          # Check the status of the repositories in the herd
  herdsman version         # Show the herdsman version

Options:
  c, [--fetch-cache=SECONDS]
  r, [--revision=REVISION]
  q, [--quiet], [--no-quiet]

herdsman status

herdsman status will check each of the repositories in the herd:

  • for untracked files
  • for modified files
  • for unpushed commits
  • for unpulled commits
  • is on the specified revision (defaults to master)
$ herdsman status
WARN: foo-repo has untracked files
WARN: foo-repo has modified files
INFO: bar-repo is ok
WARN: baz-repo has unpushed commits
WARN: baz-repo has unpulled commits
WARN: baz-repo revision is not 'qux-branch'

Exits 0 if all checks pass. Exits 1 if any of the repositories in the herd fail any of the checks.

Configuration

Configure the herd of repositories to manage with a herdsman.yml file in the current working directory.

Example:

defaults:
  revision: not-master
  fetch_cache: 300

repos:
  - /path/to/foo-repo
  - ../../path/to/bar-repo
  - path: /path/to/baz-repo
    name: 'Baz repo'        # defaults to basename of path if unset, i.e. `baz-repo`
    revision: qux-branch    # defaults to `master` if unset
    fetch_cache: 300        # in seconds, defaults to `0` if unset

License

The gem is available as open source under the terms of the MIT License.

Credits