Описание CVS
============
 CVS (concurent version system) - это утилита командной строки, предназначенная для управления версиями файлов в локальной сети, глобальной сети или интернете. Обычно CVS устанавливается на сервер, на остальных компьютерах запускаются cvs-клиенты. Пользователи могут независимо друг от друга брать файлы для изменения на свой локальный диск (еще говорят "на checkout"), править их, а затем отправлять измененные файлы обратно на сервер (делать commit). Над одним файлом могут работать одновременно несколько пользователей, т.к. cvs распознает перекрывающиеся изменения и сообщает пользователю об имеющихся конфликтах версий. Поэтому cvs не нуждается в постоянном наличии коннекта с сервером CVS для нормальной работы с ним.
 Более того, cvs умеет управлять многими деревьями проектов, объединять две версии измененых файлов в новую версию, также как и делать подробный отчет по деятельности над проектом. Это замечательное средство управления проектами, используемое при работе над большинством проектов с открытым исходным кодом, имеющихся в интернете.

Описание LinCVS
==================
 LinCVS - это графический интерфейс, фронтэнд для клиента cvs, запускаемого из командной строки, работающий как в Unix, так и в Windows (и даже в Mac OS X). Он позволяет загружать модули с сервера (делать checkout), создавать модули на сервере (делать import), а также проверять состояние как директорий, так и отдельных файлов и обновлять их. Кроме поддержки основных операций, таких как добавление, удаление, передача серверу измененного файла (commit), поддерживается показ различий между файлом в локальной папке и файлом на CVS-сервере, показ дерева версий в графической форме, а также имеется графический интерфейс для управления проектом. На cvs-сервере ведётся лог всех действий, поэтому запутаться очень сложно.
 Для того чтобы не зависить от версии cvs, LinCVS использует локально установленный cvs и поэтому будет работать и с его более новыми версиями.
 После выбора начальной директории, браузер проектов ищет в поддиректориях cvs-проекты и отображает их в рабочей области. После этого становятся доступными все функции для работы с файлами и/или целыми директориями, либо из меню, либо по правой кнопке мыши. Статус каждой отдельной директории постоянно проверяется LinCVS. Это означает, что по внешнему виду символа директории можно понять, например, есть ли еще не внесенные в CVS изменения в ней или ее поддиректориях, причем открывать ее для этого даже не надо. LinCVS способна работать с большими проектами, включающими многие тысячи файлов. LinCVS поддерживает все стандартные протоколы взаимодействия с cvs-сервером. Также имеется поддержка работы через прокси, для этого нужна пропатченная версия cvs, которая, разумеется, есть на нашем сайте в разделе download.
 Поскольку программа LinCVS не отклоняется от идеологии управлениями проектами, принятой в cvs, её можно, при необходимости, использовать одновременно с утилитой командной строки cvs. При этом состояние директорий LinCVS будет отображать корректно.  
 Несмотря на то, что в LinCVS через GUI доступен почти весь спектр функций cvs (а он постоянно расширяется и развивается;-)), можно очень легко настроить GUI под свои потребности - всплывающие меню полностью настраиваемы, в то время как обычное меню предоставляет доступ ко всему набору функций. Дополнительная панель инструментов позволяет быстро вызывать наиболее часто используемые функции.
 По сравнению с другими аналогичными программами, LinCVS _действительно_ легко использовать:).

Список возможностей
===================
Интерфейс LinCVS поддерживает: 

Протоколы соединения:
-local/nfs
-pserver
-ssh
-ssh-agent
-работает через прокси  

Вот некоторые возможности графической среды LinCVS:
-отслеживание состояния директорий
-разрешение/запрещение дерева/директорий
-непрерывный мониторинг состояния директорий (настраивается)
-сканирование директорий "на лету"
-вызов браузера для просмотра директорий
-вызов оболочки (shell), сделав указанную пользователем директорию для него текущей
-раскрыть всю иерархию
-свернуть всё

Внешний вид:
-стандартные/нестандартные диалоги
-настраиваемый формат даты/времени
-настраиваемые шрифты

Глобальные функции:
-поддержка профилей пользователей/серверов
-одновременная работа с несколькими проектами
-поддержка суб-проектов (другой CVSROOT) в едином дереве
-поддержка двоичных и текстовых файлов
-поддержка свойств для каждого проекта
-поддержка отдельных настроек для каждого проекта
-сброс/обновление директория до текущей версии дерева(reset/update to dir branch)
-переименование файлов
-настраиваемые внешний вид программы и поведение
-настраивамые пиктограммы/пиктограммы директорий
-установка в директорию для приложений
-предварительный просмотр импортируемых двоичных/текстовых файлов
-обзор модулей на cvs-сервере, даже без файла модулей
-просмотр файлов без checkout, из истории или лога
-история для: ветви/тэгов/имени проекта/commit-ов
-просмотр в разных закладках файлов разных категорий - управляемых cvs/игнорируемых cvs/не-cvs файлов
-удаление файлов как локально, так и из репозитория cvs, а такж оттуда и оттуда вместе
-открыть... (опция командной строки, открывает конкретный каталог)
-создание нового файла/директории
-встроенная утилита для просмотра отличий версий файлов, отображает отличия построчно
-встроенный диалог для разрешения конфликтов
-взможность использования внешних программ, таких как: редакторы, браузеры, оболочки, diff и удаленные оболочки(remote shells)
-имеется возможность автоматического обновления статуса проекта, запроса обновлений и собственно обновления
-вывод отладочной информации
-интерактивная справка
-возможность переименования проекта (на локальном диске)
-экспорт состояния проекта (current/modified)
-есть поддержка подпроектов (одно дерево директорий с несколькими cvs-проектами)
-настраиваемые всплывающие меню
-настраиваемые "горячие" клавиши
-настраиваемый маппинг файлов, отдельно для команд "открыть" и "просмотр"
-подсветка синтаксиса
-виртуальные директории (появляются в дереве при запросе обновления)
-возможность вызова внешних приложений с произвольными параметрами командной строки
-модальные диалоги (частично)
-перетаскивание (drag'n'drop)
-копирование/вырезание/вставка
-захват и запоминание списка тегов
-отображение даты и времени в локальном формате
-настраиваемые кодировки для разных языков

Функции CVS:
-checkout (branch/tag/date)
-import
-export (branch/tag/date)
-release/remove
-status
-query update
-показать редактирующих
-показать просматривающих 
-watch add/remove
-edit
-unedit
-history
-commit
-tag (добавить/удалить/переместить/сбросить)
-branch
-update (до какой-то версии)
-login/logout
-lock/unlock dir/files
-log (графическое представление дерева всех версий, с возможностью изменения масштаба просмотра)
-diff (относительно репозитория)
-при просмотре дерева версий или истории можно открыть файл
-при просмотре дерева версий можно сравнить и объединить две версии
-создание патча (при просмотре дерева версий)
-объединить разницу между rev1, rev2 в rev3 (при просмотре дерева версий)
-аннотация (с использованием разнообразных фильтров)
-опубликование шаблонов info
-поддержка .cvsignore (глобальная/локальная/в окружении/отдельно для каждой директории)
-добавление в текстовом или двоичном режиме
-повторное добавление (восстановление) файлов

Разумеется, есть и другие возможности (все те, о которых мы забыли написать:-)) и имейте в виду, что LinCVS все ещё развивается.
