Я хочу смочь искать в журналах фиксации svn. Я знаю, что Вы можете сделать это на черепахе, но не могли найти способ использовать командную строку.
Мы перемещаемся в двухмногоуровневый подход репозитория, так, чтобы стабильное ответвление только завершило истории полностью и протестированный. Для достижения этого нам был бы нужен способ искать в рамках сообщений о фиксации код истории (eg:#s1322) и заставить список изменений использоваться в последующей команде слияния.
Исключая: searchsvnapp http:// [repo корень местоположения] #s1322
результат: 4233,4249,4313
В итоге я разработал свой собственный инструмент, используя 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;
}
Windows-версия ответа the_void:
svn log | find "something"
Во-первых, убедитесь, что у вас есть командная строка Subversion (я использую collabnet), соответствующую вашему выпуску Tortoise 'Subversion'. Отметьте поле Tortoise about, чтобы найти версию Subversion. У каждого инструмента Subversion есть собственная копия клиента Subversion, и они не всегда взаимозаменяемы. Основные выпуски нарушат совместимость.
Из командной строки:
svn log> svn.out
Затем откройте его в своем любимом редакторе!