mob start
now functions correctly on WIP branches when the base branch is not checked out, applicable to branch names that do not contain a -
character.mob start --discard-uncommitted-changes
in the mob help
commandmob start --discard-uncommitted-changes
allows to discard uncommitted changes and then starting a new mob sessionThank you @stefanscheidt for this feature request
mob done
now pulls when someone else already did done
mob break 5
is now correctly parsed--join
for mob start
to join an existing session
mob start --join
(#437)MOB_SKIP_CI_PUSH_OPTION_ENABLED
now works correctlyThank you @stefanscheidt for reporting this issue
mob start
does not create an emtpy commit on a new wip branch anymore--room
to set the room name of timer.mob.sh oncemob status
shows a hint if there is no remote branchmob status
shows the duration of wip branchesmob done --squash-wip
now squashes the start commit as wellos.UserHomeDir()
Thank you @schmonz for fixing the build on non-Linux Unix systems Thank you @jmbockhorst for improving windows performance Thank you @michael-mader for improving our readme
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 hooksThanks 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 tracking
mob start -b green
Thanks to @jstoneham for fixing the bug with using a custom push.default
setting!
Thank you @tobiasehlert for fixing our GitHub Action workflows post-31st May 2023!
mob config
, mob help
, mob moo
and mob version
are now working outside of git repositories againmob clean
now works correctlyThanks to @danilo-bc and @jrdodds for reporting these bugs!
status.branch
is set to true
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 --no-squash
option.mob done --squash-wip
won’t lose changes when you forget to mob start
--push-option=ci.skip
when pushingThanks 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 timer
, mob break
, mob start
, 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 .git
folderMOB_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 squash
, no-squash
or squash-wip
instead.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.help
, --help
, -h
) is present in the command, e.g. mob s 10 -h
.mob start
in case the wip branch diverges from the main branch.true
or 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
, no-squash
and 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 idea %s
Thanks to @hollesse and @aryanfaghihi making this release possible!
mob done --squash-wip
.mob squash-wip
in favor of new mob done --squash-wip
.MOB_WIP_BRANCH_PREFIX
for .mob
file.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-commit
or pre-push
are triggered via mob itself..mob
file in your home directory. For an example have a look at mob-configuration-example
file..mob
file in your git project root directory. The configuration options MOB_VOICE_COMMAND
, MOB_VOICE_MESSAGE
, MOB_NOTIFY_COMMAND
, and 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.shmob done --no-squash
MOB_TIMER_ROOM
the local timer keeps on working. To disable the local timer altogether, please disable it via export MOB_TIMER_LOCAL=false
.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_NOTIFY_MESSAGE
and MOB_VOICE_MESSAGE
.MOB_STASH_NAME
.MOB_CLI_NAME
so you can use pair
, ensemble
, 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 GIT_EDITOR
.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 commitsMOB_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 --no-squash
.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.--no-squash
for 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 --no-squash
.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/green
because mob/main
cannot be a file and a directory at the same time).MOB_VOICE_COMMAND
.MOB_VOICE_COMMAND
or MOB_NOTIFY_COMMAND
to an empty string.mob config
now shows the currently used MOB_VOICE_COMMAND
and MOB_NOTIFY_COMMAND
.mob next --message "custom commit message"
as an option to override the commit message during mob next
.--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 --include-uncommitted-changes
.mob start
to work when on an outdated the WIP branchmob 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 --debug
MOB_START_INCLUDE_UNCOMMITTED_CHANGES
in favor of the parameter --include-uncommitted-changes
insteadMOB_BASE_BRANCH
or 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 feature1
after 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 wellmob start --include-uncommitted-changes
now includes untracked files in the stash ‘n’ pop as wellmob conf
will internally call mob help
to print out the usage options instead of calling mob status
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 --no-verify
flagmob config
prints configuration using the environment variable names which allow overriding the values