Thank you @clemlatz for finding and fixing the typo Thank you @stefanscheidt for updating the readme on the build and install from source instructions
start ignores git hooks
Thanks to @dkbnz for improving the uninstallation instructions Thank you @testwill for removing the deprecated ioutil Thank you @kriber82 for allowing filenames with spaces
git config push.default settings such as
mob start -b green
Thanks to @jstoneham for fixing the bug with using a custom
Thank you @tobiasehlert for fixing our GitHub Action workflows post-31st May 2023!
mob moo and
mob version are now working outside of git repositories again
mob clean now works correctly
Thanks to @danilo-bc and @jrdodds for reporting these bugs!
status.branch is set to
mob timer open opens the timer website in your default web browser. If you specified
MOB_TIMER_ROOM it will automatically open the specific timer page.
mob done will now print the command
git merge --squash --ff mob/main just once and not twice.
MOB_START_COMMIT_MESSAGE config property for changing the commit message on
mob start empty commit introduced in 4.2.0. This should help overcome problems with pre-receive git hooks.
mob done except for
mob done --squash-wip won’t lose changes when you forget to
--push-option=ci.skip when pushing
Thanks to @balintf and @muskacirca for your contributions!
mob reset doesn’t reset the mob branch anymore. It now warns you that it deletes the mob branch for everyone and if you want to continue do
mob reset --delete-remote-wip-branch.
mob next and
mob done will stop already running local timers.
mob start --create will create the remote branch and start the mob session on that branch.
git-repo which symlink the
MOB_START_INCLUDE_UNCOMMITTED_CHANGES environment variable (has been deprecated for some time).
MOB_DONE_SQUASH no longer supports a boolean value, you have to use the proper values
Thanks to @rustiever, @gulio-python, @freekk, and @sebsprenger for your contributions!
mob done --squash-wip won’t fail if a previously committed file has uncommitted modifications.
MOB_TIMER_INSECURE=true allows enterprises to use the timer.mob.sh companion service despite SSL issues.
Thanks to @gregorriegler and @JanMeier1337 for your contributions!
git is not installed.
mob timer outside of git repositories.
mob done --squash-wip now successfully auto-merges auto-mergeable diverging changes.
-h) is present in the command, e.g.
mob s 10 -h.
mob start in case the wip branch diverges from the main branch.
false in the environment variable or in the .mob configuration file.
Just a version bump.
MOB_GIT_HOOKS_ENABLED=true. And without output, the user doesn’t know what to input. And without input, mob waits indefinitely.
mob clean failed to delete an orphaned wip branch because of unmerged commits.
Thanks to @jdrst for making this release possible!
mob clean command that removes orphan wip branches that might be a left over of someone else doing a
mob done. This is especially helpful when using a lot of feature branches. If you call
mob clean on an orphan wip branch, it will switch you to the base branch, falling back to main/master if the base branch does not exist.
squash-wip for MOB_DONE_SQUASH can be set not only via env var, but now in the .mob configuration file as well.
Thanks to @hollesse and @thmuch making this release possible!
MOB_OPEN_COMMAND to a command which opens your IDE. For example, the open command for IntelliJ is
Thanks to @hollesse and @aryanfaghihi making this release possible!
mob done --squash-wip.
mob squash-wip in favor of new
mob done --squash-wip.
Thanks to @gregorriegler and @hollesse making this release possible!
MOB_GIT_HOOKS_ENABLED=true. By default, this option is false and no git hooks such as
pre-push are triggered via mob itself.
.mob file in your home directory. For an example have a look at
.mob file in your git project root directory. The configuration options
MOB_NOTIFY_MESSAGE are disabled for the project specific configuration to prevent bash injection attacks.
Thanks to @vrpntngr & @hollesse making this release possible as part of the @INNOQ Hands-On Event, February 2022.
export MOB_TIMER_ROOM_USE_WIP_BRANCH_QUALIFIER=true the room name is automatically derived from the value you passed in via the
mob start --branch <branch> parameter.
mob break 5 in combination with https://timer.mob.sh
mob done --no-squash
MOB_TIMER_ROOM the local timer keeps on working. To disable the local timer altogether, please disable it via
MOB_TIMER_ROOM to the name of your team room and mob will automatically send timer requests to your team room. Mob now even supports breaks with
mob break <minutes>.
mob will detect the new name and use that in its console output.
mob start -i. When the working directory is a subdirectory that would be removed due to
git stash the mob tool will tell the user about this and aborts with an error.
mob version fail when run outside of a git repository.
MOB_CLI_NAME so you can use
team, or whatever you like best, instead of
mob. Just install the
mob tool, set an alias in your cli and set the environment variable
MOB_CLI_NAME to the name of your alias.
mob tool on the console.
mob start --include-uncommitted-changes now fails fast. That means, if
mob can detect any issue preventing it to succeed, it will exit BEFORE calling
git stash. This will make error recovery much easier as one doesn’t have to think about applying any stashes by themselves.
mob next does not show the same committer multiple times in the list of previous committers.
mob next does not suggest the current Git user to be the next typist as long as there were other persons involved in the mob.
mob next performs a simple lookahead to also suggest persons who might have been absent only during the last mob round.
mob branch shows all remote mob branches currently available.
mob fetch fetches the remote state, so you have everything up to date locally. Helpful to combine with
mob status and
mob branch who don’t fetch by themselves.
mob start fails, the timer no longer starts to run.
mob squash-wip to squash any WIP commits in the wip branch into a following manual commit using
git rebase --interactive with
mob as the temporary
MOB_WIP_BRANCH_PREFIX to configure the
mob/ prefix to some other value.
mob <cmd> is run outside of a git repository.
mob start and
mob timer commands.
mob start if there are unpushed commits
MOB_COMMIT_MESSAGE now includes
[ci skip] and
[skip ci] so that all the typical CI systems (including Azure DevOps) will skip this commit.
--squash option to
mob done that corresponds to
MOB_DEBUG environment variable (has been deprecated for some time).
MOB_REQUIRE_COMMIT_MESSAGE which you could set to true to require a commit message other than the default one.
mob start --branch feature-1 because feature-1 contained a dash.
mob done to keep commits from wip branch.
MOB_DONE_SQUASH to configure the
mob done behaviour.
MOB_DONE_SQUASH=false is equal to passing flag
MOB_WIP_BRANCH_QUALIFIER_SEPARATOR now defaults to ‘-‘.
MOB_NEXT_STAY now defaults to ‘true’.
mob start --include-uncommitted-changes are now shown on a separate line to allow double clicking to copy in the terminal.
MOB_WIP_BRANCH_QUALIFIER via an environment variable instead of
--branch parameter. Helpful if multiple teams work on the same repository.
MOB_WIP_BRANCH_QUALIFIER_SEPARATOR via an environment variable. Defaults to ‘/’. Will change to ‘-‘ in future versions to prevent branch naming conflicts (one cannot have a branch named
mob/main and a branch named
mob/main cannot be a file and a directory at the same time).
MOB_NOTIFY_COMMAND to an empty string.
mob config now shows the currently used
mob next --message "custom commit message" as an option to override the commit message during
--return-to-base-branch (with shorthand
-r) to return to base branch on
mob next. Because ‘mob’ will change the default behavior from returning to the base branch to staying on the wip branch on
mob next, this flag provides the inverse operation of
--stay. If both are provided, the latter one wins.
-i as a shorthand notation for
mob start to work when on an outdated the WIP branch
mob next push if there are commits but no changes.
mob start --branch <branch> to allow multiple wip branches in the form of ‘mob/
mob moo (Thanks Niko for the idea)
MOB_DEBUG in favor of the parameter
MOB_START_INCLUDE_UNCOMMITTED_CHANGES in favor of the parameter
MOB_WIP_BRANCH is used.
mob start on a branch named
feature1 will switch to the branch
mob/feature1 and will merge the changes back to
mob done. For the
master branch, the
mob-session branch will still work (but this may change in the future, switching to
mob/master at some point).
mob status added. Thanks to Jeff Langr for that contribution!
MOB_NEXT_STAY set to any value (including empty value) falsely activated their respective option.
mob start when joining a mob session. It uses
git checkout -B mob-session origin/mob-session to override any local
mob-session in the process. It reduces the amount of commands necessary and makes the mob tool more predictable: the
origin/mob-session always contains the truth.
mob share command. You can still enable the zoom integration via
mob start 10 share although this is now DEPRECATED and will eventually be removed in the future.
mob start prints out untracked files as well
mob start --include-uncommitted-changes now includes untracked files in the stash ‘n’ pop as well
mob conf will internally call
mob help to print out the usage options instead of calling
MOB_START_INCLUDE_UNCOMMITTED_CHANGES via an environment variable could print out a wrong value (didn’t affect any logic, just wrong console output)
git push command now uses the
mob config prints configuration using the environment variable names which allow overriding the values