0

特定のフォルダーの 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);

1つのオプションは、レポ全体から返されたパスにディレクトリパスが含まれているかどうかを確認することですが、それほど専門的ではないようです。p

アドバイスをありがとう。

4

1 に答える 1

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

+ for(s) と if(s) の終わり

于 2013-08-30T11:23:31.630 に答える