Swift git handover and timer with mob IntelliJ plugin, it useful for Remote Mob Programming.
- mob IntelliJ plugin is a port of mob command line tool
- mob is the fast way to handover code via git
- mob keeps your
master
branch clean - mob creates WIP commits on the
mob-session
branch - mob notifies you when it's time to handover
- mob squash commits at done session and set
Co-authored-by:
trailer in commit message
There are three ways to install.
- Open Settings(Windows, Linux) / Preferences(macOS)... | Plugins
- Search "Mob" and install
Alpha, Beta, and RC versions will only be released on EAP channel.
- Open Settings(Windows, Linux) / Preferences(macOS)... | Plugins | ⚙️ | Manage Plugin Repositories...
- Add
https://plugins.jetbrains.com/plugins/eap/list
- Search "Mob" and install
- Open Mob - plugin for IntelliJ IDEs page and download latest zip file
- Open Settings(Windows, Linux) / Preferences(macOS)... | Plugins | ⚙️ | Install Plugin from Disk...
- Select downloaded zip file to install plugin
Git | Mob | Start Mob Programming as Typist... (shortcut: ALT+M, S)
Click OK, so switched to a separate branch. Start mob programming!
When handover to the next person,
Git | Mob | Next : Handover to Next Typist... (shortcut: ALT+M, N)
Continue with "Start" and handover to the next person with "Next". Continue with "Start" and handover to the next person with "Next". Continue with "Start" and handover to the next person with "Next". ...
When you're done,
Git | Mob | Done : Finish Mob Session... (shortcut: ALT+M, D)
After confirm in a dialog,
get your changes into the staging area of the master
branch.
Please commit & push into base branch yourself.
- Start Mob Programming as Typist : creates branch
mob-session
and pulls fromorigin/mob-session
- Next : pushes all changes to
origin/mob-session
in amob next [ci-skip]
commit - Done : squashes all changes in
mob-session
into staging ofmaster
and removesmob-session
andorigin/mob-session
- Set "Timer" in start dialog : start a specific minute timer, notify by a balloon if expired
- Select "Also activates screenshare in Zoom" in start dialog : start screen sharing in Zoom (requires Zoom configuration)
- Select "Stay in WIP branch after executing 'Next' and checkout base branch" in next dialog : after handover code, stay on mob session branch
- Resets Any Unfinished Mob Session : deletes
mob-session
andorigin/mob-session
The "Also activates screenshare in Zoom" 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 (Windows, Linux).
- setting under System Preferences required on macOS Catalina (or later?); Security & Privacy -> Privacy tab -> Accessibility, and add your IntelliJ Platform Based IDEs .app
More tips on setting up Zoom for effective screen sharing.
Open Settings(Windows, Linux) / Preferences(macOS) | Tools | Mob
Settings are saves to .idea/mob.xml
.
If you want a voice notification when the timer expires, open Notifications settings and turn on "Read aloud" on "Mob Timer" row (macOS only).
There are two ways to open Notification settings.
- Preferences... | Appearance & Behavior | Notifications
- Event Log window | 🔧
To see idea.log
, in JetBrains Toolbox, open Settings | Configuration, and click "Show logs directory" button.
If necessary, get the trace level log.
Open Help | Diagnostic Tools | Debug Log Settings…, and input #com.nowsprinting.intellij-mob:trace
.
- Good looking timer widget on statusbar
- Pause/resume timer action launch from statusbar
- Integration tests
- Refactor: dialogs uses
DialogWrapper
- Refactor: tests about
GitRepository
- Input validation on dialogs
- Support multiple repository
- Can rollback on "done" by splitting the done process into two phases
Open an issue or create a pull request.
Original mob developed and maintained by Dr. Simon Harrer.
Original and plugin logo designed by Sonja Scheungrab.
Port to IntelliJ plugin by Koji Hasegawa