A command-line tool for social coding
This is a CLI tool for including your co-authors in your commits.
It is essentially a Rust clone of the git-mob NPM package.
If you have Homebrew installed, you can install git-mob
using my tap:
brew install frost/tap/git-mob
Otherwise, see the section on binary packages
Download the latest release and extract it somewhere so that the binaries end up in your $PATH
.
Just run cargo install git_mob
and you should be all set.
git-mob
will currently override any existing commit.template
setting
in any project where it is run. It does this in order to ensure that git commit
will pick up your current mob.
The future plan is to do something a bit smarter, like first detecting if the
repo already has a commit.template
setting, and in that case, modify the
existing template by adding Co-authored-by:
trailers to it, or something
similar.
-
Add Alice, Bob, and yourself as a possible co-authors:
git add-coauthor a "Alice" [email protected] git add-coauthor b "bob" [email protected] git add-coauthor me "me" [email protected]
-
Set Alice as co-author, making your mob consist of you and Alice:
git mob a
-
Set both Alice and Bob as co-authors, making your mob consist of the three of you:
git mob a b
-
Set Alice as the main author for any commits you make, since she is the one doing most of the thinking anyway, and add yourself as a mob member:
git mob -o a b me
-
Edit Bob's name, since you accidentally capitalized his email instead of his name:
git edit-coauthor b --name "Bob" --email [email protected]
-
Remove Bob as a possible co-author:
git delete-coauthor b
-
List all available co-authors:
git mob -l
-
Go back to coding by yourself again:
git solo
git mob <co-author-initials>
git add-coauthor <initials> "Co-author Name" <co-author-email-address>
git -o <initials>
for overwriting the main authorgit edit-coauthor [--name "Co-author Name"] [--email <co-author-email-address>]
git delete-coauthor <initials>
git mob -l
git solo
There are some missing features from the original NPM package, that are yet to be implemented, and then there is also a severe lack of tests and documentation.
git mob-print
git suggest-coauthors
--installTemplate
and--uninstallTemplate
for prepare-commit-msg
Basically, I was looking for some decent size project to write in Rust, and I didn't have any other ideas.
The NPM package works just fine. There's just one thing that annoys me about it, and that is that I have to install it in once for every node version that is used in any repo I work in. With this approach, I only need to install it once.