svnkit: Problème d'obtenir le nom d'entrée
-
25-09-2019 - |
Question
Je suis en train de créer un plugin EFS SVN Eclipese et ont des problèmes lors de l'obtention des noms des entrées.
Quand je fais un appel à: SVNRéférentiel
`// Récupère le contenu d'un répertoire dans l'objet de collection fourni et retourne l'entrée du répertoire lui-même.
SVNDirEntry GETDIR (chemin de chaîne, longue révision, includeCommitMessages booléennes, les entrées de collection) `
Il retourne correctement l'entrée du chemin prévu, cependant, il ne fixe pas la valeur « nom » sur l'entrée « retour ». Remarque, les articles retournés dans la collection sont OK.
Quelqu'un sait pourquoi il en est? Et / ou s'il existe une solution?
Voir: http://svnkit.com/javadoc/org/tmatesoft/ svn / core / io / SVNRepository.html http: // svnkit. com / javadoc / org / tmatesoft / svn / core / io / SVNRepository.html # GETDIR (java.lang.String , long, booléen, java.util.Collection)
La solution
Il renvoie correctement l'entrée du chemin prévu, cependant, il ne définit pas la valeur « nom » sur l'entrée « retour ». Remarque, les éléments de retour dans la collection sont tous OK.
traiter comme commande « ls » à la liste des entrées dans le répertoire. Le répertoire lui-même sera représenté par « ». Ou mieux dire que le nom de l'entrée est par rapport au répertoire et le répertoire lui-même est une chaîne vide.
Quelqu'un sait pourquoi il en est? Et / ou s'il existe une solution?
Utilisez dirEntry.getURL () et vous pouvez calculer le nom du chemin de l'URL. En outre, le nom de répertoire est soit une partie du paramètre « path » ou d'une partie de l'URL de l'emplacement de l'objet SVNRéférentiel.
Autres conseils
Je l'ai vérifié et le SVNDirEntry
retourné par la méthode de getDir()
a toujours son attribut name défini sur une chaîne vide.
Toutefois, lorsque cette méthode est utilisée pour chercher un répertoire répertoriant chaque entrée de répertoire a son nom correctement attribué.
Je pense que le comportement est un peu buggé mais vous pouvez toujours trouver le nom d'un SVNDirEntry
par son URL:
SVNDirEntry dirEntry = repository.getDir("branches/1.0", -1, false, null);
String name = SVNPathUtil.tail(dirEntry.getURL().getPath());