Персональные инструменты
 

ViewVC — различия между версиями

Материал из CustisWiki

Перейти к: навигация, поиск
м (1 версия)
 
(не показаны 4 промежуточные версии 2 участников)
Строка 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)
* Подсветка синтаксиса многих языков программирования, в том числе нашего 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 здесь].
  
 
== Листинги директорий ==
 
== Листинги директорий ==
Строка 44: Строка 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]].
  
 
=== Патчи из выбранных изменений ===
 
=== Патчи из выбранных изменений ===
  
ViewVC может генерировать патчи из результатов поиска изменений (ревизий). Для генерации патча перейдите по ссылке «''Show a patch built from these changes''», показываемой вверху страницы результатов поиска. Помните, что если результаты поиска включают в себя изменения одних и тех же файлов, сильно разнесённые во времени, патч будет включать также и все изменения, сделанные в том же файле между найденными. ViewVC старается отслеживать такие ситуации и выводить предупреждение о них в следующей форме: '''CAUTION: selected changes are not contiguous, patch may include differences from other commits'''.
+
([[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 для отмены изменений ===
Строка 68: Строка 100:
 
* [[WikiPedia:ViewVC|ViewVC в Википедии]];
 
* [[WikiPedia:ViewVC|ViewVC в Википедии]];
  
[[Категория:Программирование]]
+
{{replicate-from-custiswiki-to-lib}}
 
+
{{replicate-from-custiswiki-to-4intranet}}
{{Replicate-from-custiswiki-to-lib}}
+
[[Категория:CustisWikiToTools]]
+

Текущая версия на 18:54, 23 октября 2013

ViewVC — система онлайн-просмотра репозиториев систем версионного контроля CVS и Subversion. Ранее называлась ViewCVS.

Основные возможности

Просмотр:

  • Листингов директорий (ls) (в том числе по предыдущим версиям)
  • Журналов ревизий с комментариями, списков изменённых файлов (log)
  • Различий между версиями, в том числе в формате патча (diff)
  • Содержимого файлов
    • С подсветкой синтаксиса многих языков программирования, в том числе нашего PL/SQL препроцессируемого m4 (*.sp4)
  • Аннотаций, поиск виновного (blame/annotate)

Поиск изменений:

Поддержка:

  • Прав Subversion.
  • (Wiki4intranet-logo.svg) Прав CVSnt.
  • (Wiki4intranet-logo.svg) Корректных проверок прав в результатах поиска.
  • (Wiki4intranet-logo.svg) Мелкие доработки и исправления багов, полный список здесь.

Листинги директорий

Заходя на главную страницу ViewVC, можно увидеть список CVS- и Subversion-репозиториев, а также ссылку «Query revision history» вверху страницы. Далее можно выбрать репозиторий — вы увидите список файлов и каталогов/модулей (cvs), находящихся в нём. Аналогично, кликнув на каталог, вы увидите листинг файлов и подкаталогов в нём.

Журналы ревизий

К журналу ревизий можно перейти, выбирая файл из списка (по умолчанию открывается журнал ревизий), кликая в списке на номер ревизии рядом с каталогом, или переходя по ссылке «(modified)» в списке изменений, просматриваемом по номеру ревизии.

Различия между версиями

Diff’ы отображаются с подсветкой удалённых/добавленных/изменённых строк и некоторым количеством строк контекста. Можно просматривать различия только по отдельным файлам; удобнее всего делать это со страницы журнала ревизий — нажимая на ссылки «Diff to previous XXX» или выбирая две версии (числовых, а в случае с CVS — и именованных) и желаемый формат различий внизу страницы. А со страницы с самими различиями можно скачать патч, нажав на ссылку «Patch».

Списки изменений по ревизиям

В Subversion (не CVS) каждая фиксация изменений атомарна, а в репозиториях хранятся данные для сопоставления номера ревизии репозитория и всех изменений, в ней произошедших. Кликнув по номеру ревизии на странице журнала изменений файла, или по номеру ревизии вверху страницы со списком файлов в каталоге Subversion, вы попадаете на страницу с информацией об изменениях, произошедших в данной ревизии.

Построчное аннотирование

Аннотирование (поиск виновного): файл разбивается на строки, и напротив каждой строки выводится информация о том, кто последний её менял. Чтобы перейти на страницу с аннотацией, нужно кликнуть на ссылку annotate на странице с журналом ревизий.

Поиск изменений

На страницу поиска коммитов (изменений) можно попасть по ссылкам «Query revision history» в листингах каталогов. На странице поиска можно выбрать:

  • (Wiki4intranet-logo.svg) Текст для поиска по содержимому версионированных файлов. При поиске учитывается русская и английская морфология, поиск ведётся во всю глубину истории.
  • (Wiki4intranet-logo.svg) Репозиторий, тип репозитория.
  • Поддиректорию, путь к конкретному файлу.
  • Логин автора.
  • (Wiki4intranet-logo.svg) Номер ревизии.
  • Интервал дат.
  • Текст комментария для поиска.

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

Нужно отметить несколько нетривиальное поведение поля «поддиректория» при переходе на форму поиска также из некоторой поддиректории репозитория — при этом поле «поддиректория» становится относительным по отношению к поддиректории, из которой был сделан переход.

Форма поиска используется для интеграции с Bugzilla — в Bugzilla можно увидеть ссылки «Look for bug in CVS&SVN», ведущие на результаты поиска изменений с номером бага или словом «bugXXXX» в тексте.

Поиск по содержимому

(Wiki4intranet-logo.svg) Долгое время для поиска по содержимому у нас пытался жить SVNSearcher (если это можно назвать жизнью). Но — не прижился. Ибо очень медленный, очень некачественный, и генерирует очень большие индексы. В тормозах его виноват, правда, не Lucene (который вполне быстрый), а качество реализации.

А теперь наша сборка ViewVC, с помощью прикрученных к ней Tika и Sphinx’а, умеет отлично искать по содержимому Subversion.

Viewvc-logo.png + Tika.png + Sphinx.jpg

Tika — это java-библиотека для вытаскивания текста из бинарных документов. Собственно, самое вкусное, что было в составе SVNSearcher’а. Чтобы работала быстро, её можно запускать в режиме TCP-сервера.

Sphinx — в качестве движка поиска. Его realtime индексы, из которых по факту ничего нельзя удалить, а можно только добавить, идеально подходят для индексации содержимого системы контроля версий.

Для использования поиска нужно нажать Query revision history, ввести в поле «Search content» нужный текст, выбрать желаемые даты (по умолчанию поиск только за последнюю неделю), и нажать Search.

ViewVC-ContentSearch.png

RSS-ленты изменений

Кликнув на привычный значок RSS Rss14.png на странице, можно получать результаты любых поисков в формате RSS. В том числе, можно подписываться на изменения по отдельным репозиториям, каталогам, файлам — нужно просто кликнуть по значку RSS.

Патчи из выбранных изменений

(Wiki4intranet-logo.svg) ViewVC может генерировать патчи из результатов поиска изменений (ревизий). Для генерации патча перейдите по ссылке «Show a patch built from these changes», показываемой вверху страницы результатов поиска. Помните, что если результаты поиска включают в себя изменения одних и тех же файлов, сильно разнесённые во времени, патч будет включать также и все изменения, сделанные в том же файле между найденными. ViewVC старается отслеживать такие ситуации и выводить предупреждение о них в следующей форме: CAUTION: selected changes are not contiguous, patch may include differences from other commits.

Списки merge для отмены изменений

Ещё одна нетривиальная возможность страницы результатов — ссылка «Show commands which could be used to back out these changes». Перейдя по ней, вы увидите список команд merge, которые нужно выполнить в рабочей копии репозитория, чтобы попытаться отменить все изменения, выведенные на странице результатов поиска.

Ссылки



Внимание! Эта статья была создана путем автоматического реплицирования из внутренней базы знаний компании Заказные Информ Системы. Любые правки этой статьи могут быть перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».


Статья реплицируется в Wiki4IntraNet.