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.
Corregir GotPushSupport.getDefaultTarget: sobrecarga de 2 argumentos
PushSupport declara dos getDefaultTarget: la de un argumento es abstracta, pero la de (repositorio, fuente) tiene cuerpo por defecto que siempre retorna null (verificado con javap). El dialogo de Push llama a esa segunda version, y al recibir null marca el modelo con un error de 'empty target' y loadCommits corta la ejecucion antes de invocar GotOutgoingCommitsProvider -- por eso nunca aparecia el log de diagnostico agregado antes y el boton de Push quedaba deshabilitado pese a existir commits reales. Se agrega la sobrecarga faltante delegando a la de un argumento. Mismo patron de bug que CheckinEnvironment.commit() (fase de commit/rollback), donde la plataforma tambien encadena una sobrecarga con valor por defecto distinta a la que se sobreescribio.
Anadir diagnostico al proveedor de commits salientes y popup del widget de rama
GotOutgoingCommitsProvider ahora registra en el log de IntelliJ el remote, la rama, el hash remoto resuelto y los ids encontrados en cada llamada, y ya no deja escapar excepciones que no sean VcsException (antes se perdian en silencio dentro del ExecutorService del dialogo de Push sin quedar registradas en idea.log). Esto es para diagnosticar por que el boton de Push sigue sin habilitarse pese a existir commits pendientes reales. Tambien se implementa GotBranchWidget.getWidgetPopup(), que antes no existia (el valor por defecto de la plataforma es null, por lo que no pasaba nada al hacer click en el widget). Ahora muestra un popup no interactivo con el log reciente cacheado en GotRepository (mismo patron que branch/revision, calculado fuera del EDT).
Implementar deteccion real de commits pendientes de enviar
Anade remoteBranchHash/outgoingCommitIds/catCommit a GotCommandLineWrapper (basados en got ref -l, got log -x y got cat <hash>), y una clase GotFullCommitDetails que adapta un GotCommitObject a VcsFullCommitDetails. GotOutgoingCommitsProvider ahora resuelve el hash de la rama remota y lista los commits no alcanzados por ella en vez de devolver siempre una lista vacia, lo que permite que el dialogo de Push nativo detecte y habilite el boton de envio con commits reales pendientes.
Fix EDT violation in GotRepository.getCurrentBranchName()
Reported in vivo: the branch widget never showed anything, and opening the Push dialog hit 'Synchronous execution on EDT' (got info run directly from PushController.createTreeModel on the UI thread) -- the same category of bug fixed earlier for GotContentRevision. getCurrentBranchName()/getCurrentRevision() now return cached fields instead of shelling out to got info on every call. State is read once eagerly on construction and refreshed in update(), which the platform calls off the EDT during a repository refresh cycle.
Replace the simple Send action with a native Push dialog
Adds GotPushSource/GotPushTarget/GotPusher/GotOutgoingCommitsProvider/ GotPushTargetPanel/GotPushSupport, wired to the Repository model added previously. This enables IntelliJ's native Push dialog (Ctrl+Shift+K) for got send, showing the current branch and target ('origin/<branch>') the same way Git does, instead of a plain menu action with no preview. GotOutgoingCommitsProvider reports an empty outgoing-commits list: got has no cheap local way to compute what a send would push without contacting the server first, so the dialog works but doesn't preview commits ahead of time. GotPushTargetPanel is read-only (got resolves its own remote/branch via got.conf), unlike Git's editable target. GotSendAction is removed; the same got send functionality is now reached through the Push dialog instead of a VCS Operations Popup entry.
Add a Repository model and a branch-name status bar widget
GotRepository/GotVcsRepositoryCreator/GotRepositoryManager plug into the platform's shared DVCS infrastructure (VcsRepositoryManager, AbstractRepositoryManager) rather than reimplementing repository tracking from scratch. GotBranchWidget (built on DvcsStatusWidget, the same base class git4idea's own branch widget uses) shows the current branch next to the project name in the main toolbar, matching Git's UI. Requires new compile dependencies on intellij.platform.vcs.dvcs and intellij.platform.vcs.dvcs.impl: Repository/RepositoryManager and the status widget base classes live outside com.intellij.modules.vcs. This Repository model is also the prerequisite for real PushSupport (native Ctrl+Shift+K dialog), which follows next.
Add status badges to the README
GitHub Actions release workflow status, latest GitHub release version, GPLv3 license, and JetBrains Marketplace version/downloads (plugin 33099).
