Получить весь журнал ревизий из ветки в SVN, используя SVNKIT - PullRequest
1 голос
/ 21 декабря 2011

Я пытаюсь получить все действия, которые были выполнены над веткой в ​​моем Java-коде, используя SVN Kit.

SVNRepository repository = SVNRepositoryFactory.create(svnURL);
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager("UserName", "password");
repository.setAuthenticationManager(authManager);
Collection logEntries = repository.log(new String[] { "" }, null, 0, -1, true, true);

Приведенный выше код работает как талисман, и я получаю всю активность в ветке, обозначенную моим атрибутом svnURL.

Но настоящая проблема возникает, когда после некоторой активности сама ветка была переименована. Например

Initial Branch => https://domain/repository/branches/OriginalName
New
Branch =>  https://domain/repository/branches/NewName

Теперь, после переименования, когда я запускаю приведенный выше код с использованием Старого имени, я получаю сообщение об ошибке propfind, в котором говорится, что файл не может быть найден. Но когда я запускаю с новым именем ветви, все работает файл, и это также дает журналы активности в этой ветви, но только до переименования. Операция, произошедшая с именем OldBranch, не возвращается.

Есть ли способ в SVNKit получить вывод, как я ожидаю?

1 Ответ

2 голосов
/ 21 декабря 2011

Вы устанавливаете для параметра strictNode из log значение true

Если strictNode имеет значение true, история копирования не будет просматриваться (если она существует) при сборе ревизиижурналы для каждого пути.

Это похоже на остановку при копировании / переименовании в большинстве графических интерфейсов.Установив значение false, вы должны получить всю историю изменений.

Примечание: svn rename - это просто копия и удаление .Он создаст новую копию файла / папки и удалит старую.

...