Swift git handover with 'mob'.
mobis an open source command line tool written in gomobis the fasted way to handover code via gitmobkeeps yourmasterbranch cleanmobcreates WIP commits on themob-sessionbranchmobnotifies you when it's time to handover
curl -sL install.mob.sh | sh
You can also install it on macOS via homebrew:
brew install remotemobprogramming/brew/mob
You only need three commands: mob start, mob next, and mob done.
Switch to a separate branch with mob start and handover to the next person with mob next.
Continue with mob start and handover to the next person with mob next.
Continue with mob start and handover to the next person with mob next.
Continue with mob start and handover to the next person with mob next.
...
When you're done, get your changes into the staging area of the master branch with mob done and commit them.
USAGE
mob start [<minutes> [share]] [--include-uncommitted-changes] # start mob session
mob next [-s|--stay] # handover to next person
mob done # finish mob session
mob reset # reset any unfinished mob session (local & remote)
mob status # show status of mob session
mob share # start screen sharing in Zoom (requires Zoom configuration)
mob timer <minutes> # start a <minutes> timer
mob config # print configuration
mob help # print usage
mob version # print version number
EXAMPLES
mob start 10 # start 10 min session
mob start 10 share # start 10 min session with zoom screenshare
mob next --stay # handover code and stay on mob session branch
mob done # get changes back to master branch
mob startcreates branchmob-sessionand pulls fromorigin/mob-sessionmob nextpushes all changes toorigin/mob-sessionin amob next [ci-skip]commitmob donesquashes all changes inmob-sessioninto staging ofmasterand removesmob-sessionandorigin/mob-sessionmob timer 10start a ten minute timermob sharestart screen sharing in Zoom (requires Zoom configuration)mob start 10combines mob start and mob timer 10mob start 10 sharecombines mob start and mob timer 10 and mob sharemob statusdisplay the mob session status and all the created WIP commitsmob resetdeletesmob-sessionandorigin/mob-sessionmob configprint configuration
The mob share feature uses the zoom keyboard shortcut "Start/Stop Screen Sharing". This only works if you
- make the shortcut globally available (Zoom > Preferences > Keyboard Shortcuts), and
- keep the default shortcut at CMD+SHIFT+S (macOS)/ ALT+S (Linux).
More tips on setting up Zoom for effective screen sharing.
To get the timer to play "mob next" on your speakers when your time is up, you'll need an installed speech engine. Install that on Debian/Ubuntu/Mint as follows:
sudo apt-get install espeak-ng-espeak mbrola-us1Create a little script in your $PATH called say with the following content:
#!/bin/sh
espeak -v us-mbrola-1 "$@"Show your current configuration with mob config:
MOB_BASE_BRANCH=master
MOB_WIP_BRANCH=mob-session
MOB_REMOTE_NAME=origin
MOB_WIP_COMMIT_MESSAGE=mob next [ci-skip]
MOB_VOICE_COMMAND=say
MOB_NEXT_STAY=false
MOB_START_INCLUDE_UNCOMMITTED_CHANGES=false
MOB_DEBUG=false
Override default value permanently via environment variables:
export MOB_NEXT_STAY=trueOverride default value just for a single call:
MOB_NEXT_STAY=true mob nextOpen an issue or create a pull request.
Developed and maintained by Dr. Simon Harrer.
Contributions and testing by Jochen Christ, Martin Huber, Franziska Dessart, and Nikolas Hermann. Thank you!
Logo designed by Sonja Scheungrab.
<script async defer src="https://cdn.simpleanalytics.io/hello.js"></script>