Difference between revisions of "ViewVC"

From Wiki4Intranet
Jump to: navigation, search
 
Line 3: Line 3:
 
* Сайт: http://www.viewvc.org/, http://viewvc.tigris.org/
 
* Сайт: http://www.viewvc.org/, http://viewvc.tigris.org/
 
* Лицензия: Permissive, типа [[rupedia:Лицензия MIT|MIT]]. Free & OpenSource.
 
* Лицензия: Permissive, типа [[rupedia:Лицензия MIT|MIT]]. Free & OpenSource.
 +
* Версия с нашими доработками (ViewVC4Intranet): https://github.com/vitalif/viewvc-4intranet
 +
*: Ниже значком ([[File:Wiki4intranet-logo.svg|32px|link=]]) помечены фичи, присутствующие только в нашей версии.
  
 
= Основные возможности =
 
= Основные возможности =
Line 16: Line 18:
 
[[#Поиск изменений|Поиск изменений]]:
 
[[#Поиск изменений|Поиск изменений]]:
 
* Поиск по параметрам ревизии
 
* Поиск по параметрам ревизии
* (!) [[#Поиск по содержимому|'''Поиск по содержимому файлов''']], в том числе бинарных (офисных и т.п.)
+
* ([[File:Wiki4intranet-logo.svg|32px|link=]]) [[#Поиск по содержимому|'''Поиск по содержимому файлов''']], в том числе бинарных (офисных и т.п.)
 
* Генерация [[RSS]]-лент изменений (в том числе по любому запросу поиска)
 
* Генерация [[RSS]]-лент изменений (в том числе по любому запросу поиска)
* [[#Патчи из выбранных изменений|Генерация патчей]] из выбранных списков изменений
+
* ([[File:Wiki4intranet-logo.svg|32px|link=]]) [[#Патчи из выбранных изменений|Генерация патчей]] из выбранных списков изменений
 
* [[#Списки merge для отмены изменений|Вывод команд svn merge для отмены выбранных изменений]]
 
* [[#Списки merge для отмены изменений|Вывод команд svn merge для отмены выбранных изменений]]
 +
 +
Поддержка:
 +
* Прав 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 здесь].
  
 
== Листинги директорий ==
 
== Листинги директорий ==
Line 44: Line 52:
  
 
На страницу поиска коммитов (изменений) можно попасть по ссылкам «Query revision history» в листингах каталогов. На странице поиска можно выбрать:
 
На страницу поиска коммитов (изменений) можно попасть по ссылкам «Query revision history» в листингах каталогов. На странице поиска можно выбрать:
* Текст для поиска по содержимому. При поиске учитывается русская и английская морфология, поиск ведётся ''во всю глубину истории''.
+
* ([[File:Wiki4intranet-logo.svg|32px|link=]]) Текст для поиска по содержимому версионированных файлов. При поиске учитывается русская и английская морфология, поиск ведётся ''во всю глубину истории''.
* Репозиторий, поддиректорию, путь к конкретному файлу.
+
* ([[File:Wiki4intranet-logo.svg|32px|link=]]) Репозиторий, тип репозитория.
 +
* Поддиректорию, путь к конкретному файлу.
 
* Логин автора.
 
* Логин автора.
* Номер ревизии, интервал дат.
+
* ([[File:Wiki4intranet-logo.svg|32px|link=]]) Номер ревизии.
 +
* Интервал дат.
 
* Текст комментария для поиска.
 
* Текст комментария для поиска.
  
Line 58: Line 68:
 
=== Поиск по содержимому ===
 
=== Поиск по содержимому ===
  
Долгое время для поиска по содержимому у нас пытался жить [[SVNSearcher]] (если это можно назвать жизнью). Но — не прижился. Ибо '''очень''' медленный, '''очень''' некачественный, и генерирует '''очень''' большие индексы. В тормозах его виноват, правда, не Lucene (который вполне [[Сравнение движков полнотекстового поиска|быстрый]]), а качество реализации.
+
([[File:Wiki4intranet-logo.svg|32px|link=]]) Долгое время для поиска по содержимому у нас пытался жить [[SVNSearcher]] (если это можно назвать жизнью). Но — не прижился. Ибо '''очень''' медленный, '''очень''' некачественный, и генерирует '''очень''' большие индексы. В тормозах его виноват, правда, не Lucene (который вполне [[Сравнение движков полнотекстового поиска|быстрый]]), а качество реализации.
  
 
А теперь наша сборка '''ViewVC''', с помощью прикрученных к ней Tika и Sphinx’а, умеет отлично искать по содержимому Subversion.
 
А теперь наша сборка '''ViewVC''', с помощью прикрученных к ней Tika и Sphinx’а, умеет отлично искать по содержимому Subversion.
Line 78: Line 88:
 
=== Патчи из выбранных изменений ===
 
=== Патчи из выбранных изменений ===
  
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 для отмены изменений ===
Line 90: Line 100:
 
* [[WikiPedia:ViewVC|ViewVC в Википедии]];
 
* [[WikiPedia:ViewVC|ViewVC в Википедии]];
  
[[Категория:Программирование]]
 
 
{{replicate-from-custiswiki-to-lib}}
 
{{replicate-from-custiswiki-to-lib}}
 
{{replicate-from-custiswiki-to-4intranet}}
 
{{replicate-from-custiswiki-to-4intranet}}

Latest revision as of 18:54, 23 October 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, которые нужно выполнить в рабочей копии репозитория, чтобы попытаться отменить все изменения, выведенные на странице результатов поиска.

Ссылки


Внимание! Данная статья выбрана для репликации во внешнюю базу знаний компании. Пожалуйста, не допускайте в этой статье публикацию конфиденциальной информации, ведения обсуждений в теле статьи, и более ответственно относитесь к качеству самой статьи — проверяйте орфографию, пишите по-русски, избегайте непроверенной вами информации.


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