- Description:
- Plugin para IntelliJ IDEA para usar Got (Game of Trees) como sistema de control de versiones.
- Last Change:
- Clone URL:
https://git.nezzontli.xyz/clone/gotvcs-intellij.git
Commit Briefs
Actualizar README, descripción del plugin y changeNotes para 0.2.1 (tags/v0.2.1)
Documenta el soporte de clone agregado (README, plugin.xml) y sube la versión a 0.2.1.
Resolver GOT_AUTHOR automáticamente desde git config si el repo no lo define
got.conf de un repo recién clonado solo trae el remote, no un author, así que got commit fallaba con "GOT_AUTHOR environment variable is not set" en cualquier repo clonado sin configuración manual previa. Ahora se resuelve user.name/user.email vía git config como fallback -- got.conf y la config local del repo siguen ganando por precedencia, así que esto nunca pisa un author explícito. Confirmado en vivo contra un repo real.
Agregar soporte para clonar repos got por SSH desde el diálogo nativo de IntelliJ
Registra "Got" en el dropdown "Version control" del diálogo Clone Repository (CheckoutProvider) con un panel propio de URL/Directory --no hereda de DvcsCloneDialogComponent porque esa clase de Git4Idea es @ApiStatus.Internal y rompe verifyPlugin. El clone corre en dos pasos (got clone crea el repo bare, got checkout puebla el work tree) a través de CloneableProjectsService, el mismo mecanismo que usa Git4Idea para que el proyecto clonado termine en Recent Projects. La URL solo acepta ssh://, que es el único protocolo que este plugin soporta para clonar.
Limpiar comentarios narrativos y actualizar README/plugin.xml para 0.2.0 (tags/v0.2.0)
Recorta comentarios que narraban el proceso de investigacion (referencias a decompilar clases, bugs anteriores ya resueltos, etc.) dejando solo el 'por que' no obvio de cada decision. Actualiza el README, cambeLog y la descripcion del plugin.xml para reflejar las funciones agregadas en esta version: pestana Log, boton Commit and Send, deteccion real de commits salientes, got como VCS distribuido, y refresco automatico del panel de Commit y el Log tras commit/push/update o cambios externos.
Branches
Tree
README.md
# Got — IntelliJ VCS Integration for Game of Trees
[](https://github.com/Richard7987/gotvcs-intellij/actions/workflows/release.yml)
[](https://github.com/Richard7987/gotvcs-intellij/releases/latest)
[](LICENSE)
[](https://plugins.jetbrains.com/plugin/33099-got)
[](https://plugins.jetbrains.com/plugin/33099-got)
Native version control support for [Game of Trees](https://gameoftrees.org/)
(`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):
```properties
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](LICENSE).
