我需要从特定文件夹中获取SVNRepository的日志。
例如 - 我有
SVNURL url = SVNURL.parseURIEncoded("https://subversion.assembla.com/svn/jscrum");
SVNRepository svnRepository = DAVRepositoryFactory.create(url);
我从存储库获取日志:
Collection logEntries = svnRepository.log(new String[] { "" }, null, startRevision, endRevision, true, true);
它的工作正确,但显示我从整个回购日志。我需要从repo上的文件夹进行更改:" / trunk / js / web / src / main / webapp"。
我已经尝试了一些'但是没有一个能够正常工作:<
SVNURL url = SVNURL.parseURIEncoded("https://subversion.assembla.com/svn/jscrum/trunk/js/web/src/main/webapp");
或
Collection logEntries = svnRepository.log(new String[] { "/trunk/js/web/src/main/webapp" }, null, startRevision, endRevision, true, true);
一个选项是检查整个仓库的返回路径是否包含我的目录路径,但似乎不那么专业; P
感谢您的任何建议。
答案 0 :(得分:2)
好的,所以解决方案看起来像这样(对于下一代搜索者:P):
for (Iterator entries = logEntries.iterator(); entries.hasNext();) {
SVNLogEntry logEntry = (SVNLogEntry) entries.next();
if (logEntry.getChangedPaths().size() > 0) {
Set<String> changedPathsSet = logEntry.getChangedPaths().keySet();
for (Iterator<String> changedPaths = changedPathsSet.iterator(); changedPaths
.hasNext();) {
SVNLogEntryPath entryPath = (SVNLogEntryPath) logEntry
.getChangedPaths().get(changedPaths.next());
String path = entryPath.getPath();
if (!path.startsWith(updatePath)) {
continue;
}
+(s)和if(s)
的结尾