Удалить запись через Java tmatesoft SVN
Я пытаюсь очистить папку в SVN через ISVNEditor Java. Я считываю все файлы в этой папке, используя:
final List<String> filesInFolder = tool.getAllFilesInDir(map);
public List<String> getAllFilesInDir(final String dir) throws SVNException{
final String dir2 = dir.substring(prefix.length(), dir.length());
final SVNNodeKind kind = query.checkPath(dir2, -1);
final List<String> fileList = new ArrayList<>();
if (SVNNodeKind.DIR.equals(kind)){
SVNRevision revision = SVNRevision.HEAD;
final SvnList list = operationFactory.createList();
list.setDepth(SVNDepth.IMMEDIATES);
list.setRevision(revision);
list.addTarget(SvnTarget.fromURL(SVNURL.parseURIEncoded(baseURL + "/" + dir), revision));
list.setReceiver(new ISvnObjectReceiver<SVNDirEntry>() {
public void receive(SvnTarget target, SVNDirEntry object) throws SVNException {
final String name = object.getRelativePath();
if(name!=null && !name.isEmpty()) {
fileList.add(name);
}
}
});
list.run();
}
return fileList;
}
Затем я перебираю этот массив, чтобы удалить файлы, используя
for (final String s : filesInFolder) {
tool.removeFromSvn(map + "/" + s, SVNNodeKind.FILE);
}
private void removeFromSvn(final String dir, final SVNNodeKind nodeKind) throws SVNException{
String dir2 = dir;
if (dir2.substring(0, prefix.length()).equalsIgnoreCase(prefix)){
dir2 = dir.substring(prefix.length(), dir.length());
}
final SVNNodeKind kind = query.checkPath(dir2, -1);
if (nodeKind.equals(kind)){
editor.openRoot(-1);
editor.deleteEntry(dir2, -1);
} else {
throw new GpsSvnException("Cannot open " + dir2);
}
}
Что аналогично примеру 9 по следующей ссылке: https://www.programcreek.com/java-api-examples/?class=org.tmatesoft.svn.core.io.ISVNEditor&method=deleteEntry
Значение dir2 приводит к: "SPG2/.../tc001/TC001.feature", который является допустимым путем при его открытии в TortoiseSVN. То же самое происходит, когда я не удаляю префикс с переменной dir: "svn/JavaDev/SPG2/.../tc001/TC001.feature". При использовании любого из этих значений я получаю ошибку 404 Not Found. При перемещении по каталогам сначала, а затем при удалении я получаю ошибку 204 Нет содержимого.
У меня вопрос, как мне удалить файл из SVN с помощью ISVNEditor? Какой патч мне нужно вставить в него, и нужно ли открывать другие каталоги, прежде чем пытаться удалить?