Как объединить все сообщения коммитов из Subversion в один текстовый файл без метаданных? - PullRequest
2 голосов
/ 11 июня 2010

Я хотел бы взять все сообщения коммита в моем журнале subversion и просто объединить их в один текстовый файл, предпочтительно используя командную строку svn в windows.

Каждое сообщение коммита имеет следующий формат:

- сообщение r1
- сообщение r1
- сообщение r1

Что-то вроде:- сообщение r2
- сообщение r2
- сообщение r3
[...]
- сообщение r1000

Обновление

Я думал, что выше было ясно, но что я не хочу в журнале, так это тип информации:

r2130 |пользователь |2010-03-19 10:36:13 -0400 (пт, 19 марта 2010 г.) |1 строка

Нет метаданных, я просто хочу сообщения фиксации.

Ответы [ 5 ]

6 голосов
/ 11 июня 2010

Вы можете использовать параметр --xml команды svn log, который устанавливает выходной формат xml и затем легко анализирует его с помощью некоторого языка сценариев для создания необходимого текстового файла. В питоне что-то вроде:

from xml.dom.minidom import parse
xml = parse("log.xml")
entries = xml.getElementsByTagName("logentry")
for e in entries:
    rev = e.getAttribute("revision")
    msg = e.getElementsByTagName("msg")[0].firstChild.nodeValue
    print "-r" + rev + " " + msg

Сохраните его как parseLog.py, а затем просто запустите

svn log --xml > log.xml
python parseLog.py > revisions.txt
1 голос
/ 11 июня 2010

Как предположил Давиде Гуалано, вы можете использовать команду --xml для создания выходных данных, которые можно проанализировать.Используйте произвольный процессор xslt и файл xslt для получения нужного вам результата.См. svn2cl для примера.

0 голосов
/ 11 июня 2010

С помощью Tortoise SVN вы можете щелкнуть правой кнопкой мыши, выбрать Tortoise / Show Log.Выберите все журналы и вставьте их в файл.

0 голосов
/ 11 июня 2010

Если вы являетесь Java-разработчиком, вы можете использовать SVNKit , чтобы написать именно тот тип программы извлечения Subversion, который вам нужен.

В противном случае, как уже ответили другие, вы можете взятьвыходной журнал и манипулировать им вручную.

0 голосов
/ 11 июня 2010

из командной строки Windows, не уверен, как избавиться от строк -------

svn log - q > svn.log
...