Давайте создадим ваши переменные:
$ VERSIONNUMBER=v0.9.3-beta
$ VERSIONNUMBERNAME=${VERSIONNUMBER:1}
Эта форма заменяет только первое вхождение .
:
$ echo "${VERSIONNUMBERNAME/./_}"
0_9.3-beta
Чтобы заменить все вхождения .
, используйте: [ 1110]
$ echo "${VERSIONNUMBERNAME//./_}"
0_9_3-beta
Поскольку этот подход позволяет избежать создания конвейеров и подоболочек и использования внешних исполняемых файлов, этот подход эффективен. Этот подход также безопасен для Unicode.
Из man bash
:
$ {параметр / шаблон / строка}
Замена шаблона. Шаблон расширяется, чтобы создать шаблон так же, как в раскрытии пути. Параметр раскрывается, и самое длинное совпадение шаблона с его значением заменяется строкой. Если шаблон начинается с /, все совпадения шаблона заменяются на строку. Обычно заменяется только первое совпадение. Если шаблон начинается с #, он должен совпадать в начале расширенного значения параметра. Если шаблон начинается с%, он должен совпадать в конце расширенного значения параметра. Если строка пуста, совпадения шаблона удаляются, и / следующий шаблон может быть опущен. Если включена опция оболочки nocasematch, сопоставление выполняется без учета буквенных символов. Если параметр равен @ или *, операция замещения применяется к каждому позиционному параметру по очереди, и расширение является результирующим списком. Если параметр является переменной массива, подписанной @ или *, операция замещения применяется к каждому члену массива по очереди, и расширение является результирующим списком. (Акцент добавлен.)
blockquote>
Я пишу subverion утилиту поколения графика статистики, названную SVNPlot. Это вдохновлено графиками, сгенерированными StatSVN. Однако поколение графика SVNPlot находится на двух шагах (a) сначала, оно создает , база данных sqlite3 от информации о журнале подверсии (b) фактические графики затем сгенерирована путем извлечения базы данных sqlite база данных (использующий простые запросы SQL).
я думаю с помощью sql для извлечения данных графика из информации о журнале, приводит к большей гибкости и хорошей производительности. Прямо сейчас SVNPlot только генерирует графики, но это очень легкий извлечь любую другую статистику из сгенерированной sqlite базы данных.
SVNPlot записан в Python, и он использует превосходный пакет Matplotlib для генерации графиков. Код доступен на страница SVNPlot на коде Google (лицензия является Новой лицензией BSD). Демонстрационные графики, сгенерированные для репозитория Rietveld, доступны в http://thinkingcraftsman.in/projects/svnplot/index.htm
Вы могли бы также дать StatSVN попытка.
Это записано в Java (отвечает Вашему независимому от платформы требованию), и генерирует статическое дерево HTML с Вашей историей пересмотра и графиками фиксации. Можно использовать Муравья или пакетный файл для автоматизации процесса вызова его.
я также услышал хорошие вещи о Trac.
для простоты черепаха svn дает основной график пересмотра
Единственный инструмент, с которым я когда-либо встречался, сценарий svn-graph.pl perl от svn инструментов. Это выкладывает файл точки graphviz, который может быть представлен во множестве форматов изображения. Это могло быть обернуто в cgi сценарии для формирования основного веб-инструмента графика.
Возможно, Вы могли уточнить немного то, какое "визуальное представление" и "симпатичные диаграммы" Вы после?
кольцо А путь состоял бы в том, чтобы клонировать репозиторий SVN с мерзавец-svn , затем можно использовать графическое gitk или хихиканье инструменты на нем для визуализации ответвлений и слияния, а также просмотра специфических особенностей.
(Вы затем получили бы распределенную вещь, тот , мерзавец так успевает как хороший побочный эффект.)
Trac включает браузер исходного кода и ограниченный анализ статистики. Это веб-, конечно.
Trac является Wiki и инструмент отслеживания ошибки, который, оказывается, включает браузер SVN. RevtreePlugin, для Trac позволит Вам отображать свой repo в графической форме. Trac является все еще очень молодым приложением (последняя версия 0.11.1), но мы используем его на работе для нашей разработки программного обеспечения, и это доказано очень полезным до сих пор.
Вы могли также попробовать СТАТИСТИКА MPY SVN . Здесь график в качестве примера для Zope.
Подозрительный взгляд , от Atlassian, смотрит на репозиторий SVN и может показать Вам несколько графиков. Также обеспечивает удобный веб-интерфейс для вины, разности, и т.д.
, например, некоторые демонстрационные изображения в один из демонстрационных серверов:
И если Вам нравятся некоторые симпатичные метрики кода, вот, некоторые образцы .