Запрос в SVNKit - PullRequest
       15

Запрос в SVNKit

2 голосов
/ 30 января 2012

Я использую SVNKit для доступа к хранилищу, содержащему двоичные файлы. Мне нужно перейти к определенным каталогам в хранилище и получить список файлов из них. Затем я делаю это: (небрежный код)

 Collection<SVNDirEntry> entries=(Collection<SVNDirEntry> repository.getDir(omitted);
 Iterator<SVNDirEntry> it=entries.iterator();
 while(it.hasNext()){
      SVNDirEntry entry=(SVNDirEntry) it.next();
      if(entry.getName().contains("abc")){
           list.add(entry.getName());
      }
 }

Большинство каталогов содержат мало файлов, и у меня нет проблем с использованием getDir (....) из SVNRepository, но есть одна папка, содержащая около 10000 файлов (или более), и приложение просто останавливается, когда я пытаюсь сделай это. Даже если я жду часами, ничего не происходит. Есть ли способ решить это? Мне не нужны все файлы, только те, которые содержат определенный код в имени файла. Могу ли я попросить, чтобы хранилище давало мне только имена файлов, содержащие порядок «abc», чтобы ускорить это?

Кстати, я знаю, что это не очень хороший способ использовать Subversion, но я, к сожалению, вынужден сделать это таким образом.

1 Ответ

1 голос
/ 30 января 2012

Вы, вероятно, взрываете память в своем заявлении о коллекциях.

Используйте версию обработчика метода getDir:

getDir(String path, long revision, Map properties, ISVNDirEntryHandler handler)

Таким образом, вы обрабатываете только один файл за раз.

...