gpt4 book ai didi

java - 使用 SVNKit 从存储库的特定目录获取日志

转载 作者:行者123 更新时间:2023-12-02 06:47:06 24 4
gpt4 key购买 nike

我需要从特定文件夹的 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);

它工作正常,但显示了整个存储库的日志。我需要对存储库上的文件夹进行更改:“/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):

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;
}

+ for(s) 和 if(s) 结束

关于java - 使用 SVNKit 从存储库的特定目录获取日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18529334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com