svnkit: проблема с получением имени записи - PullRequest
1 голос
/ 08 апреля 2010

Я пытаюсь создать плагин SVN Eclipese EFS и у меня возникают проблемы при получении имен записей.

Когда я звоню: SVNRepository

`// Извлекает содержимое каталога в предоставленный объект коллекции и возвращает саму запись каталога.

SVNDirEntry getDir (путь строки, длинная ревизия, логическое значение includeCommitMessages, записи коллекции) `

Правильно возвращает запись для указанного пути, однако не устанавливает значение «имя» для «возвращаемой» записи. Обратите внимание, что все предметы, возвращенные в коллекцию, исправны.

Кто-нибудь знает, почему это так? И / или если есть обходной путь?

См: 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, boolean, java.util.Collection)

Ответы [ 2 ]

2 голосов
/ 13 апреля 2010

Правильно возвращает запись для указанного пути, однако не устанавливает значение name в возвращаемой записи. Обратите внимание, предметы вернулись в коллекцию все ок.

Относитесь к ней как к команде "ls", чтобы получить список записей в каталоге. Сам каталог будет представлен как "." Или лучше сказать, что имя записи относится к каталогу, а для самого каталога это пустая строка.

Кто-нибудь знает, почему это так? И / или если есть обходной путь?

Используйте dirEntry.getURL (), и затем вы можете вычислить имя из пути URL. Кроме того, имя каталога является либо частью параметра «путь», либо частью URL-адреса местоположения объекта SVNRepository.

1 голос
/ 13 апреля 2010

Я проверил, и SVNDirEntry, возвращенный методом getDir(), всегда имеет свой атрибут name равным пустой строке.

Однако, когда этот метод используется для получения списка каталогов, каждой записи каталога присваивается правильное имя.

Я думаю, что поведение несколько ошибочное, хотя вы все равно можете узнать имя SVNDirEntry через его URL:

SVNDirEntry dirEntry = repository.getDir("branches/1.0", -1, false, null);
String name = SVNPathUtil.tail(dirEntry.getURL().getPath());
...