Quiero usar JGit API para recuperar las etiquetas asociadas con un hash de confirmación específico (si hay alguno)?JGit: Recuperar etiqueta asociada con un commit de git
Indique el fragmento de código para el mismo.
Quiero usar JGit API para recuperar las etiquetas asociadas con un hash de confirmación específico (si hay alguno)?JGit: Recuperar etiqueta asociada con un commit de git
Indique el fragmento de código para el mismo.
Git object model describe la etiqueta como un objeto que contiene información sobre un objeto específico, es decir. commit (entre otras cosas) por lo tanto es imposible en pure git obtener la información que desea (commit object no tiene información sobre etiquetas relacionadas). Esto debe hacerse "hacia atrás", tomar el objeto etiqueta y luego referirse a la confirmación específica.
Por lo tanto, si desea obtener información sobre las etiquetas especificadas para un compromiso particular, debe repetirlas (etiquetas) y elegir el apropiado.
List<RevTag> list = git.tagList().call();
ObjectId commitId = ObjectId.fromString("hash");
Collection<ObjectId> commits = new LinkedList<ObjectId>();
for (RevTag tag : list) {
RevObject object = tag.getObject();
if (object.getId().equals(commitId)) {;
commits.add(object.getId());
}
}
Si usted sabe que no es exactamente una etiqueta para su confirmación, usted podría utilizar describe, en las versiones más recientes de JGit (~ November 2013).
Git.wrap(repository).describe().setTarget(ObjectId.fromString("hash")).call()
Se podría analizar el resultado, para ver si existe una etiqueta, pero si no puede haber varias etiquetas, hay que ir con solución Marcins.
Se puede encontrar más información sobre la pregunta [en este hilo] (http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg01706.html) de la lista de correo de JGit. – Sonson123
¿No debería recoger las etiquetas en lugar de las confirmaciones? –
Y org.eclipse.jgit.api.Git.tagList(). Call() devuelve List . –