|
|
(не показано 9 промежуточных версий 3 участников) |
Строка 1: |
Строка 1: |
− | ViewVC — система онлайн-просмотра репозиториев систем версионного контроля, таких как [[CVS]] и [[Subversion]]. Ранее называлась ViewCVS.
| + | ViewVC — система онлайн-просмотра репозиториев систем версионного контроля [[CVS]] и [[Subversion]]. Ранее называлась ViewCVS. |
| | | |
| * Сайт: http://www.viewvc.org/, http://viewvc.tigris.org/ | | * Сайт: http://www.viewvc.org/, http://viewvc.tigris.org/ |
− | * Распространение: freeware, opensource (BSD-подобная лицензия) | + | * Лицензия: Permissive, типа [[rupedia:Лицензия MIT|MIT]]. Free & OpenSource. |
| + | * Версия с нашими доработками (ViewVC4Intranet): https://github.com/vitalif/viewvc-4intranet |
| + | *: Ниже значком ([[File:Wiki4intranet-logo.svg|32px|link=]]) помечены фичи, присутствующие только в нашей версии. |
| | | |
| = Основные возможности = | | = Основные возможности = |
| | | |
− | * Просмотр листингов директорий (ls) (в том числе по предыдущим версиям)
| + | Просмотр: |
− | * Просмотр журналов ревизий с комментариями (log) | + | * Листингов директорий (ls) (в том числе по предыдущим версиям) |
− | * Просмотр различий между версиями, в том числе в формате патча (diff) | + | * Журналов ревизий с комментариями, списков изменённых файлов (log) |
− | * Просмотр списков изменённых файлов в отдельных ревизиях | + | * Различий между версиями, в том числе в формате патча (diff) |
− | * Построчное аннотирование (поиск виновного) (blame/annotate) | + | * Содержимого файлов |
− | * Просмотр содержимого файлов
| + | ** С подсветкой синтаксиса многих языков программирования, в том числе нашего PL/SQL препроцессируемого [[m4]] (*.sp4) |
− | * Подсветка синтаксиса многих языков программирования | + | * Аннотаций, поиск виновного (blame/annotate) |
− | * [[RSS]]-ленты изменений (в том числе по отдельным каталогам)
| + | |
− | * Поиск изменений в базе данных, в том числе по тексту комментария | + | |
− | * Вывод списка команд merge для отмены выбранных изменений
| + | |
| | | |
− | = Использование ViewVC = | + | [[#Поиск изменений|Поиск изменений]]: |
| + | * Поиск по параметрам ревизии |
| + | * ([[File:Wiki4intranet-logo.svg|32px|link=]]) [[#Поиск по содержимому|'''Поиск по содержимому файлов''']], в том числе бинарных (офисных и т.п.) |
| + | * Генерация [[RSS]]-лент изменений (в том числе по любому запросу поиска) |
| + | * ([[File:Wiki4intranet-logo.svg|32px|link=]]) [[#Патчи из выбранных изменений|Генерация патчей]] из выбранных списков изменений |
| + | * [[#Списки merge для отмены изменений|Вывод команд svn merge для отмены выбранных изменений]] |
| | | |
− | В нашей Компании главную страницу ViewVC можно увидеть по локальному адресу http://viewvc.office.custis.ru/.
| + | Поддержка: |
| + | * Прав Subversion. |
| + | * ([[File:Wiki4intranet-logo.svg|32px|link=]]) Прав CVSnt. |
| + | * ([[File:Wiki4intranet-logo.svg|32px|link=]]) Корректных проверок прав в результатах поиска. |
| + | * ([[File:Wiki4intranet-logo.svg|32px|link=]]) Мелкие доработки и исправления багов, полный список [https://github.com/vitalif/viewvc-4intranet/blob/master/CHANGES здесь]. |
| | | |
| == Листинги директорий == | | == Листинги директорий == |
| | | |
− | Заходя на главную страницу ViewVC, можно увидеть список [[CVS]]- и [[Subversion]]-репозиториев, а также ссылку «Query revision history» вверху страницы. Далее можно выбрать репозиторий — вы увидите список файлов и каталогов/модулей (cvs), находящихся в нём. Аналогично, кликнув на каталог, вы увидите листинг файлов и подкаталогов в нём. | + | Заходя на главную страницу ViewVC, можно увидеть список [[CVS]]- и [[Subversion]]-репозиториев, а также ссылку «Query revision history» вверху страницы. Далее можно выбрать репозиторий — вы увидите список файлов и каталогов/модулей (cvs), находящихся в нём. Аналогично, кликнув на каталог, вы увидите листинг файлов и подкаталогов в нём. |
| | | |
| == Журналы ревизий == | | == Журналы ревизий == |
Строка 31: |
Строка 39: |
| == Различия между версиями == | | == Различия между версиями == |
| | | |
− | Diff’ы отображаются с подсветкой удалённых/добавленных/изменённых строк и некоторым количеством строк контекста. Можно просматривать различия только по отдельным файлам; удобнее всего делать это со страницы журнала ревизий — нажимая на ссылки «Diff to previous XXX» или выбирая две версии (числовых, а в случае с CVS — и именованных) и желаемый формат различий внизу страницы. А со страницы с самими различиями можно скачать патч, нажав на ссылку «Patch». | + | Diff’ы отображаются с подсветкой удалённых/добавленных/изменённых строк и некоторым количеством строк контекста. Можно просматривать различия только по отдельным файлам; удобнее всего делать это со страницы журнала ревизий — нажимая на ссылки «Diff to previous XXX» или выбирая две версии (числовых, а в случае с CVS — и именованных) и желаемый формат различий внизу страницы. А со страницы с самими различиями можно скачать патч, нажав на ссылку «Patch». |
| | | |
| == Списки изменений по ревизиям == | | == Списки изменений по ревизиям == |
Строка 43: |
Строка 51: |
| == Поиск изменений == | | == Поиск изменений == |
| | | |
− | На страницу поиска коммитов (изменений) можно попасть по ссылкам «Query revision history» в листингах каталогов. На странице поиска можно выбрать репозиторий, поддиректорию, отдельный файл, логин автора, интервал дат и/или текст комментария для поиска. Большинство параметров может содержать как точное значение, так и регулярное выражение для выбора нескольких вариантов. | + | На страницу поиска коммитов (изменений) можно попасть по ссылкам «Query revision history» в листингах каталогов. На странице поиска можно выбрать: |
| + | * ([[File:Wiki4intranet-logo.svg|32px|link=]]) Текст для поиска по содержимому версионированных файлов. При поиске учитывается русская и английская морфология, поиск ведётся ''во всю глубину истории''. |
| + | * ([[File:Wiki4intranet-logo.svg|32px|link=]]) Репозиторий, тип репозитория. |
| + | * Поддиректорию, путь к конкретному файлу. |
| + | * Логин автора. |
| + | * ([[File:Wiki4intranet-logo.svg|32px|link=]]) Номер ревизии. |
| + | * Интервал дат. |
| + | * Текст комментария для поиска. |
| | | |
− | Нужно отметить несколько нетривиальное поведение поля «поддиректория» при переходе на форму поиска также из некоторой поддиректории репозитория — при этом поле «поддиректория» становится относительным по отношению к поддиректории, из которой был сделан переход.
| + | Большинство параметров может содержать как точное значение, так и регулярное выражение для выбора нескольких вариантов. |
| | | |
− | Форма поиска используется для интеграции с [[Bugzilla]] — в Bugzilla можно увидеть ссылки «Look for bug in CVS&SVN», ведущие на результаты поиска изменений с номером бага или словом «bugXXXX» в тексте. | + | Нужно отметить несколько нетривиальное поведение поля «поддиректория» при переходе на форму поиска также из некоторой поддиректории репозитория — при этом поле «поддиректория» становится относительным по отношению к поддиректории, из которой был сделан переход. |
| + | |
| + | Форма поиска используется для интеграции с [[Bugzilla]] — в Bugzilla можно увидеть ссылки «Look for bug in CVS&SVN», ведущие на результаты поиска изменений с номером бага или словом «bugXXXX» в тексте. |
| + | |
| + | === Поиск по содержимому === |
| + | |
| + | ([[File:Wiki4intranet-logo.svg|32px|link=]]) Долгое время для поиска по содержимому у нас пытался жить [[SVNSearcher]] (если это можно назвать жизнью). Но — не прижился. Ибо '''очень''' медленный, '''очень''' некачественный, и генерирует '''очень''' большие индексы. В тормозах его виноват, правда, не Lucene (который вполне [[Сравнение движков полнотекстового поиска|быстрый]]), а качество реализации. |
| + | |
| + | А теперь наша сборка '''ViewVC''', с помощью прикрученных к ней Tika и Sphinx’а, умеет отлично искать по содержимому Subversion. |
| + | |
| + | <span style="font-size: 200%">[[File:viewvc-logo.png|link=http://viewvc.org/]] + [[File:Tika.png|200px|link=http://tika.apache.org/]] + [[File:Sphinx.jpg|link=http://sphinxsearh.com/]]</span> |
| + | |
| + | '''Tika''' — это java-библиотека для вытаскивания текста из бинарных документов. Собственно, самое вкусное, что было в составе SVNSearcher’а. Чтобы работала быстро, её можно запускать в режиме TCP-сервера. |
| + | |
| + | '''Sphinx''' — в качестве движка поиска. Его realtime индексы, из которых по факту ничего нельзя удалить, а можно только добавить, идеально подходят для индексации содержимого системы контроля версий. |
| + | |
| + | Для использования поиска нужно нажать '''Query revision history''', ввести в поле «Search content» нужный текст, выбрать желаемые даты (по умолчанию поиск только за последнюю неделю), и нажать Search. |
| + | |
| + | [[File:ViewVC-ContentSearch.png|400px]] |
| | | |
| === RSS-ленты изменений === | | === RSS-ленты изменений === |
| | | |
− | Кликнув на привычный значок [[RSS]] [[Изображение:rss14.png]] на странице, можно получать результаты любых поисков в формате [[RSS]]. В том числе, можно подписываться на изменения по отдельным репозиториям, каталогам, файлам — нужно просто кликнуть по значку [[RSS]]. | + | Кликнув на привычный значок [[RSS]] [[File:rss14.png]] на странице, можно получать результаты любых поисков в формате [[RSS]]. В том числе, можно подписываться на изменения по отдельным репозиториям, каталогам, файлам — нужно просто кликнуть по значку [[RSS]]. |
| + | |
| + | === Патчи из выбранных изменений === |
| + | |
| + | ([[File:Wiki4intranet-logo.svg|32px|link=]]) ViewVC может генерировать патчи из результатов поиска изменений (ревизий). Для генерации патча перейдите по ссылке «''Show a patch built from these changes''», показываемой вверху страницы результатов поиска. Помните, что если результаты поиска включают в себя изменения одних и тех же файлов, сильно разнесённые во времени, патч будет включать также и все изменения, сделанные в том же файле между найденными. ViewVC старается отслеживать такие ситуации и выводить предупреждение о них в следующей форме: '''CAUTION: selected changes are not contiguous, patch may include differences from other commits'''. |
| | | |
| === Списки merge для отмены изменений === | | === Списки merge для отмены изменений === |
| | | |
− | Ещё одна нетривиальная возможность страницы результатов — ссылка «Show commands which could be used to back out these changes». Перейдя по ней, вы увидите список команд merge, которые нужно выполнить в рабочей копии репозитория, чтобы попытаться отменить все изменения, выведенные на странице результатов поиска. | + | Ещё одна нетривиальная возможность страницы результатов — ссылка «''Show commands which could be used to back out these changes''». Перейдя по ней, вы увидите список команд merge, которые нужно выполнить в рабочей копии репозитория, чтобы попытаться отменить все изменения, выведенные на странице результатов поиска. |
| | | |
| = Ссылки = | | = Ссылки = |
Строка 63: |
Строка 100: |
| * [[WikiPedia:ViewVC|ViewVC в Википедии]]; | | * [[WikiPedia:ViewVC|ViewVC в Википедии]]; |
| | | |
− | [[Category:Программирование]]
| + | {{replicate-from-custiswiki-to-lib}} |
− | | + | {{replicate-from-custiswiki-to-4intranet}} |
− | {{Replicate-from-custiswiki-to-lib}} | + | |
К журналу ревизий можно перейти, выбирая файл из списка (по умолчанию открывается журнал ревизий), кликая в списке на номер ревизии рядом с каталогом, или переходя по ссылке «(modified)» в списке изменений, просматриваемом по номеру ревизии.
Diff’ы отображаются с подсветкой удалённых/добавленных/изменённых строк и некоторым количеством строк контекста. Можно просматривать различия только по отдельным файлам; удобнее всего делать это со страницы журнала ревизий — нажимая на ссылки «Diff to previous XXX» или выбирая две версии (числовых, а в случае с CVS — и именованных) и желаемый формат различий внизу страницы. А со страницы с самими различиями можно скачать патч, нажав на ссылку «Patch».
Аннотирование (поиск виновного): файл разбивается на строки, и напротив каждой строки выводится информация о том, кто последний её менял. Чтобы перейти на страницу с аннотацией, нужно кликнуть на ссылку annotate на странице с журналом ревизий.
На страницу поиска коммитов (изменений) можно попасть по ссылкам «Query revision history» в листингах каталогов. На странице поиска можно выбрать:
Большинство параметров может содержать как точное значение, так и регулярное выражение для выбора нескольких вариантов.
Нужно отметить несколько нетривиальное поведение поля «поддиректория» при переходе на форму поиска также из некоторой поддиректории репозитория — при этом поле «поддиректория» становится относительным по отношению к поддиректории, из которой был сделан переход.