Despite having an IDE and graphical tools, I usually have several–maybe too many–terminals while programming in Scala. The bare minimum consists of a tab running SBT and another one with a regular shell to perform the usual git rituals.
The problem with this otherwise lovely scheme is that switching back and forth between tabs, while reasoning about why a test is failing or how to frame the next commit, is error prone. More often than I would like to admit this is the result:
> git status
[error] Expected ID character
[error] Not a valid command: git (similar: exit, plugin, set)
[error] Expected project ID
[error] Expected configuration
[error] Expected ':' (if selecting a configuration)
[error] Expected key
[error] Not a valid key: git (similar: dist, npt, ivySbt)
[error] git status
[error] ^
>
This feeling cannot be easily described with words.
Feeling the same? Worry not, because some nice people have created sbt-git a plugin that provides a git command within SBT. In short:
> git status
[info] On branch release-0.8
[info] nothing to commit, working directory clean
>
You can enable it by adding the following line to
~/.sbt/0.13/plugins/plugins.sbt
:
addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "0.8.0")