Skip to content

Repository files navigation

Got — IntelliJ VCS Integration for Game of Trees

Release Latest release License: GPLv3 JetBrains Marketplace version JetBrains Marketplace downloads

Native version control support for Game of Trees (got) in IntelliJ-based IDEs: the same file status, diff, commit, history, and update/push workflow you get with Git, backed by the got CLI.

Features

  • Detects .got/ work trees as a got VCS root automatically
  • File status in the Commit tool window (got status)
  • Native diff and modified-lines gutter (got cat against the base commit)
  • Commit and rollback from the Commit tool window (got commit, got revert)
  • A Commit and Send button next to the default Commit action: commits and opens the native Push dialog in one step
  • A Log tab with the full commit graph, refs (branches/remote branches/tags), and per-commit changed files
  • File history (got log) and Update Project (got update / got fetch)
  • Clone repositories over ssh:// from the native Clone Repository dialog ("Got" in the Version control dropdown)
  • Current branch name shown in the status bar, and the native Push dialog (Ctrl+Shift+K) with real outgoing-commit detection for got send
  • Automatic refresh of the Commit panel and Log tab after commit, push, or update — including changes made outside the IDE (e.g. got commit in a terminal)
  • A Settings panel (Settings > Version Control > got) to override the got binary path and SSH_AUTH_SOCK, for setups where auto-detection doesn't apply

How it works

There's no daemon and no cached repository model: every action shells out to the got binary for the relevant work tree and adapts its output to the corresponding IntelliJ Platform VCS API.

IntelliJ feature got command
VCS root detection presence of a .got/ directory
File status got status
Diff / gutter got cat -c :base
Commit got commit -m <message> <paths>
Rollback got revert -R <paths>
Commit and Send got commit, then opens the Push dialog
Log tab got log -b, got cat, got ref -l
History got log
Update Project got fetch + got update
Branch widget got info ("work tree branch reference")
Push got send
Outgoing commits got ref -l + got log -x against the remote
Clone got clone (bare repo) + got checkout (work tree)

Source is organized by responsibility under dev.nezzontli.gotvcs:

  • cli — the single wrapper around got invocations (GotCommandLineWrapper)
  • changes, checkin, history, update, roots — one package per VCS extension point implemented
  • repo — the Repository model and the branch-name status bar widget
  • push — native Push dialog support (PushSupport and friends), including outgoing-commit detection
  • checkout — the "Got" entry in the Clone Repository dialog (CheckoutProvider)
  • log — the Log tab (VcsLogProvider) and the refresh notifier that keeps it and the Commit panel up to date
  • settings — the persisted configuration and its Settings panel

Requirements

  • IntelliJ IDEA (or another IntelliJ Platform IDE) 2026.1 or newer
  • The got binary, either on PATH or configured under Settings > Version Control > got

Building

./gradlew buildPlugin

The resulting ZIP is written to build/distributions/ and can be installed via Settings > Plugins > ⚙ > Install Plugin from Disk.

By default, this downloads a matching IntelliJ IDEA build to compile against. To use a local installation instead (faster, no download), set in ~/.gradle/gradle.properties (not part of this repo):

ideLocalPath=/path/to/your/IntelliJ/installation

Contributing

Issues and pull requests are welcome. Before submitting a change:

./gradlew buildPlugin verifyPlugin

verifyPlugin checks compatibility against the IDE versions declared by sinceBuild in build.gradle.kts and flags deprecated API usage.

Releasing

Pushing a v* tag triggers .github/workflows/release.yml, which builds, verifies, creates a GitHub Release with the plugin ZIP attached, and — once a PUBLISH_TOKEN secret is configured — publishes to the JetBrains Marketplace.

License

GPLv3.

About

Native version control support for Game of Trees (got) in IntelliJ-based IDEs

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages