Как я ищу в журналах svn

Я хочу смочь искать в журналах фиксации svn. Я знаю, что Вы можете сделать это на черепахе, но не могли найти способ использовать командную строку.

Мы перемещаемся в двухмногоуровневый подход репозитория, так, чтобы стабильное ответвление только завершило истории полностью и протестированный. Для достижения этого нам был бы нужен способ искать в рамках сообщений о фиксации код истории (eg:#s1322) и заставить список изменений использоваться в последующей команде слияния.

Исключая: searchsvnapp http:// [repo корень местоположения] #s1322

результат: 4233,4249,4313

6
задан Emerson 17 June 2010 в 13:55
поделиться

4 ответа

В итоге я разработал свой собственный инструмент, используя svnkit .

Ниже приводится основная часть кода, выполняющего поиск в журналах. Мне пришлось использовать «SVNWCUtil.createDefaultAuthenticationManager», используя временную папку, чтобы он не испортил конфигурацию svn инструмента svn строки cmd, который у меня есть в том же окне, которое должно запускать инструмент. Если будет достаточно интереса, я могу сделать весь веб-инструмент открытым. Пожалуйста, дайте мне знать (возможно, голосование за ответ?), Если вам интересно.

public Collection<SVNLogEntry> searchSVN(String url, String name,
        String password, long startRevision, long endRevision,
        String searchTerm, String svnUser) throws Exception {
    DAVRepositoryFactory.setup();
    SVNRepository repository = null;
    repository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(url));
    // changed the config folder to avoid conflicting with anthill svn use
    ISVNAuthenticationManager authManager = SVNWCUtil
            .createDefaultAuthenticationManager(new File("/tmp"), name,
                    password, false);
    repository.setAuthenticationManager(authManager);
    Collection<SVNLogEntry> resultLogEntries = new LinkedList();
    Collection<SVNLogEntry> logEntries = repository.log(
            new String[] { "" }, null, startRevision, endRevision, true,
            true);
    for (SVNLogEntry svnLogEntry : logEntries) {
        if (svnLogEntry.getMessage().indexOf(searchTerm) > -1) {
            if ((svnUser == null || svnUser.equals(""))
                    || svnLogEntry.getAuthor().equals(svnUser)) {
                resultLogEntries.add(svnLogEntry);
            }
        }
    }
    return resultLogEntries;
}
1
ответ дан 8 December 2019 в 12:18
поделиться

Windows-версия ответа the_void:

svn log | find "something"
3
ответ дан 8 December 2019 в 12:18
поделиться

Во-первых, убедитесь, что у вас есть командная строка Subversion (я использую collabnet), соответствующую вашему выпуску Tortoise 'Subversion'. Отметьте поле Tortoise about, чтобы найти версию Subversion. У каждого инструмента Subversion есть собственная копия клиента Subversion, и они не всегда взаимозаменяемы. Основные выпуски нарушат совместимость.

Из командной строки:

svn log> svn.out

Затем откройте его в своем любимом редакторе!

1
ответ дан 8 December 2019 в 12:18
поделиться

Разве это не сработает?

svn log | grep "something"
6
ответ дан 8 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: