Получить историю удаленного файла из SVN с помощью SVNKit

Я пытаюсь получить доступ к истории изменений файла, который был удален с помощью SVNKit.

Ниже приводится то, что я делаю для достижения этого.

SVNClientManager manager = SVNClientManager.newInstance(); 
SVNLogClient logClient = manager.getLogClient(); 
logClient.doLog(svnURL, new String[] { fileName }, SVNRevision.create(deletedRevision),
                                            SVNRevision.UNDEFINED, SVNRevision.UNDEFINED, false, false, true, -1, null,
                                            new ISVNLogEntryHandler() {
                                                public void handleLogEntry(SVNLogEntry logEntry) throws SVNException {
                                                    log.debug(" ==== " + logEntry.getChangedPaths() + " === "
                                                            + logEntry.getRevision());
                                            }
                                        });

Здесь deleteRevision => Ревизия SVN, в которой был удален файл.

Когда этот код выполняется, я продолжаю получать следующие исключения:

org.tmatesoft.svn.core.SVNException: svn: '<FilePath>' path not found: 404 Not Found (https://<RepositoryURL>
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.logImpl(DAVRepository.java:976)
        at org.tmatesoft.svn.core.io.SVNRepository.log(SVNRepository.java:1034)
        at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:1024)
        at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:891)
        at com.blueoptima.connectors.scr.SVN.getWorkingFileList(SVN.java:711)
        ... 4 more

Это что-то, что я делаю неправильно здесь? Есть ли другой способ получить историю удаленного файла с помощью SVNKit?


person Salman A. Kagzi    schedule 08.03.2012    source источник


Ответы (2)


Хотя этот вопрос был задан более года назад, но все же думал ответить на него, если это может помочь другим.

Я не пытался получить историю удаленного файла, но я мог получить историю удаленной ветки, используя -

SVNLogClient.doLog(SVNURL.parseURIEncoded(path), new String[] { "" }, pegRevision, SVNRevision.create(0),pegRevision, stopOnCopy, discoverChangedPaths, logsLimit, logHandler);

Это похоже на вызов, который вы делаете, но вам нужно указать правильные значения для pegRevision, startRevision и endRevision. Использование UNDEFINED может не дать правильного результата, вместо этого используйте ревизию, в которой файл был удален, как pegRevision и startRevision как 0, и это должно работать.

person ajay.gour    schedule 02.10.2013

Вы должны указать ревизию, в которой файл существовал как ревизия привязки. Явно удалена Ревизия-1. А может быть (здесь я не уверен, просто попробуйте) файл должен существовать как в начальной, так и в конечной ревизии.

person Dmitry Pavlenko    schedule 12.05.2012