¿Cómo acceder a ChangeSets en Eclipse (Mylyn / Team)?

Quiero acceder a los ChangeSets de SVN, CVS y Git programáticamente a través de Java . Es decir, quiero los datos que se muestran en la vista "Sincronizar" .

Probé varios enfoques para encontrar el uso correcto en el código, y aquí está la poca documentation que pude encontrar (pero sin éxito):

  • Pude acceder a Synchronize-View a través de TeamUI.getSynchronizeManager() , pero no a los sets de cambios.

  • Otra cosa que probé fue get los cangesets a través de FocusedTeamUiPlugin.getDefault().getContextChangeSetManagers() (obtuve el administrador y luego el ChangeSetProvider donde traté de get los ChangeSets), pero siempre están vacíos (porque se crearon cuando primero llámalo).

Entonces, ¿cómo puedo acceder a ChangeSets (con Java) en Eclipse (Mylyn)? Al final, necesito el número de confirmaciones y el código de abandono (loC agregado / eliminado / editado) . ¿O es probable que haya otro enfoque mejor?

¡Cualquier ayuda es apreciada realmente mucho!

No creo que Eclipse haya implementado esta característica como una API pública todavía. Sin embargo, estos enlaces pueden ayudar:

Clase de set de cambios interno y otra API: http://www.cct.lsu.edu/~rguidry/ecl31docs/api/index.html?org/eclipse/team/internal/core/subscribers/ChangeSet.html

Una request de mejora de funciones en la que se habla de por qué aún no la han implementado (pero está dateda en 2008, ¿pero el error sigue abierto?) https://bugs.eclipse.org/bugs/show_bug.cgi?id=116084

Lo siento, no podría ser de más ayuda! Quizás esto te ayude en la dirección correcta …

Podrías quizás ir alnetworkingedor de Eclipse:

  • Aplica rsync para get los files CVS "*, v" del server CVS. Esto funciona para mi.
  • Aplique el command "cvs2git" de cvs2svn a los repos de CVS. Esto funciona para mi.
  • Aplica "git svn clone" (documentado bajo "git-svn") a los repositorys SVN. No lo he probado.
  • Finalmente, use la API de JGit para get los sets de cambios de todos los repos, que en este punto son todos los repositorys de git. Creo que en particular los necesitarás:
    • class Git
    • class FileResolver
    • class BaseConnection
    • Repositorio de interfaz
    • class CheckoutCommand
    • class LogCommand
    • class RevCommit
    • class DiffCommand
    • class DiffEntry
    • class DiffFormatter

He estado buscando esto por 1 mes ahora. Traté de progtwigr un plugin para eclipse, que es capaz de leer el set de cambios de un proyecto ("copy de trabajo" del repository).

Lo que he hecho ahora es una fea solución.

Usé Runtime.exec () para ejecutar un command cmd / command Shell. Si instala un Cliente svn-commandline, puede escribir svn status -v -u Le da una list de todos los files de la copy de trabajo con la información del set de cambios.

Luego puede analizar la list para encontrar todas las líneas que comienzan con "M" – para "modificar" para get la ruta del file modificado.