public Map<String, String> listEntries(String _path, String _asof, String _until) { Map<String, String> l = new HashMap<String, String>(); //String rel_path = url.toString().replace(rootRepo.getDir("", -1, null, (Collection<SVNDirEntry>)null).iterator().next(), ""); try { Collection<SVNDirEntry> entries = this.rootRepo.getDir(_path, -1, null,(Collection<SVNDirEntry>) null); //this.getDirEntries(path); Iterator<SVNDirEntry> iterator = entries.iterator(); String name = null, path = null; long rev = -1; // Use an iterator to get all directory entries in a certain path ("tags/") int asof = (_asof==null?-1:Integer.parseInt(_asof)); int until = (_until==null?-1:Integer.parseInt(_until)); while (iterator.hasNext()) { SVNDirEntry entry = (SVNDirEntry) iterator.next(); SvnClient.log.debug( "Path mess: " + entry.getPath() + " | " + entry.getRelativePath() + " | " + entry.getRepositoryRoot() + " | " + entry.getExternalParentUrl() + " | " + entry.getURL()); name = entry.getName(); rev = entry.getRevision(); path = entry.getURL().toString().substring(entry.getRepositoryRoot().toString().length()); if( asof<rev && (_until==null || rev<until) ) l.put(path, Long.toString(rev)); } } catch (Exception e) { SvnClient.log.error( "Error while getting directory entries: " + e.getMessage() ); } // return the tag name and the corresponding revision number return l; }