2013-11-22 5 views
1

Я начинаю с subversions. Можно ли получить svn log ouput в json формате с помощью команд linux. На самом деле, я хочу увидеть историю коммитов одного файла.Svn log output json format

Я попробовал следующую команду:

svn log file:///var/svn/repository/test.txt 

Выход:

------------------------------------------------------------------------ 
r40166 | user1 | 2013-11-22 12:20:51 +0530 (Fri, 22 Nov 2013) | 1 line 

Removed whitespace 
------------------------------------------------------------------------ 
r40107 | user1 | 2013-11-21 14:24:16 +0530 (Thu, 21 Nov 2013) | 1 line 

Commited text file 
------------------------------------------------------------------------ 

Есть ли способ, чтобы получить данные в формате JSON? Если нет, есть ли способ разобрать выше вывод для отображения в виде таблицы с помощью jquery?

Справка будет принята с благодарностью.

ответ

3

Если вы еще не заметили, что у SVN есть опция вывода --xml. Я бы предложил использовать это, а затем использовать некоторый код для преобразования XML в JSON. Вы должны быть в состоянии найти много советов, как это сделать в Интернете. Например, вот Stack Overflow question about doing it in Python.

0

Предлагаемое предложение было бы написать svn-hooks для команды log. Введение в svn hooks для Windows можно найти здесь - http://blogs.wandisco.com/2011/11/10/an-introduction-to-subversion-hook-scripts-on-windows/. Дополнительно для Linux (для предварительной фиксации) здесь, но вы можете расширить концепцию команды svn log - http://pear.php.net/manual/en/package.php.php-codesniffer.svn-pre-commit.php. Аналогичным образом вы можете написать сценарий оболочки, чтобы преобразовать вывод текстового файла в формат jSON.

+0

Крюки действительно не будут полезны для него. В основном они используются, чтобы серверная сторона могла принимать решения о входящих изменениях (например, pre-commit, pre-revprop-change) и запускать действия после коммитов (например, post-commit, post-revprop-change). Написание сценария крючка, который преобразует данные журнала в JSON, не будет проще, чем делать это с клиента. –