go-git-mob

command module
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2022 License: MIT Imports: 2 Imported by: 0

README


go-git-mob

A golang port of the nodejs git-mob tool, go-git-mob assists with managing co-authors when mob programming.
README · CHANGELOG . CONTRIBUTING
Report Bug · Request Feature

Table of contents

About the project

go-git-mob helps manage git co-authors when collaborating in real-time.

Like the original nodejs git-mob plugin, this golang port tool differs from and complements mob.sh in two key ways:

  • whereas mob.sh detects co-authors from commit messages alone, git-mob and go-git-mob understand that not all co-authors have their hands on the keyboard each session.
  • whereas mob.sh squashes each feature branch into a single commit, git-mob and go-git-mob leave this decision up to you, complimenting your workflow by injecting conventional Co-authored-by: comments into each commit message through the use of a git prepare-commit-message hook.

As the original authors of the node git-mob tool wrote:

Documenting code collaboration

When we work together, we should document that. It’s more than just giving credit to others, it’s also informing everyone about who was responsible for introducing changes to a codebase. Keeping a clear record of your work has lasting value - ever stumbled on an old commit only to be left with unanswered questions? In addition to explaining in your commits why a change was introduced, it also helps to document who implemented the change in case there needs to be a follow up.

go-git-mob provides a single-file binary version of the node git-mob tool which installs globally and operates independent of any specific nodejs version in use for a given git repository.

Built with

Getting started

To get a local copy up and running follow these simple steps.

Installation

Install a binary release
  • Download an appropriate package for your GOOS and GOARCH from the Releases tab;
  • Uncompress it and put the binary in your path;
  • Optionally, review Post-install steps to explode the convenience methods;

For example:

export VERSION=0.4.0
mkdir -p ~/bin/go-git-mob/v${VERSION}
mv ~/Downloads/go-git-mob_${VERSION}_Darwin_arm64.tar.gz ~/bin/go-git-mob/v${VERSION}/
cd ~/bin/go-git-mob/v${VERSION}
gunzip -c go-git-mob_${VERSION}_Darwin_arm64.tar.gz | tar xopf -
ln -s ~/bin/go-git-mob/v${VERSION}/go-git-mob ~/bin/git-mob
git mob version
Install using go install

With a working golang setup at version >= 1.18 you can use go install:

go install github.com/davidalpert/go-git-mob@latest

Unfortunately, due to a naming conflict with the original git-mob repo, this one installs as $($GOBIN || $GOPATH/bin/)/go-git-mob and goes unrecognized as a git plugin.

To enable it you can symlink git-mob to it like this:

ln -s "$(which go-git-mob)" "$(dirname $(which go-git-mob))/git-mob"

Post-install steps

As a single file executable go-git-mob ships with one git plugin:

git mob

which offers several sub-commands:

git mob coauthors suggest
git mob print
git mob solo
git mob version

For easier use and compatibility with git-mob, go-git-mob includes an install sub-command:

git mob install

which sets up the following top-level git plugins as aliases to the matching git mob sub-commands:

git mob-print
git mob-version
git solo
git suggest-coauthors

Uninstall

go-git-mob ships with an implode sub-command:

git mob implode

which cleans up and removes the top-level mob plugins and deletes itself.

Usage

  • TODO; coming as the project nears v1.0

Utility commands

The git-mob binary also ships with several utility commands which you can explore using the --help flag:

$: git mob -h
A tool for managing git coauthors.

Usage:
  git-mob [command]

Available Commands:
  help        Help about any command
  version     Show version information

Flags:
  -h, --help   help for git-mob

Use "git-mob [command] --help" for more information about a command.

Roadmap

See open issues and specifically the v1.0 - feature parity project board for a list of known issues and up-for-grabs tasks.

Contributing

See the CONTRIBUTING guide for local development setup and contribution guidelines.

License

Distributed under the GPU v3 License. See LICENSE for more information.

Contact

David Alpert - @davidalpert

Project Link: https://github.com/davidalpert/go-git-mob

Acknowledgements

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
cfg
cmd
diagnostics/plaintext
Package plaintext implements a development-friendly plain textual handler.
Package plaintext implements a development-friendly plain textual handler.
env
msg
version
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL