VCS (ВКС) – простая система контроля версий

Ознакомительная статья по системе ВКС: Что такое “simpleVCS.

ВКС обладает полноценным графическим вэб-интерфейсом, в нем нет консольных команд. Вэб позвозволяет делать бытро и удобно даже очень сложные интерфейсы, его гибкость не сравнить с GUI, и только специальные средства позволяют делать игровой уровень графики, но требуют несравнимо больших затрат времени. Но игровой уровень не нужен для VCS и поэтому был выбран вэб-интерфейс.

Главный плюс системы - все участники видят, кто над чем работает, могут посмотреть разницы измененных файлов.
Другой плюс - удобные списки игнорирования и, особенно, разрешенных расширений и папок. Список разрешенных папок позволяет эффективно ограничивая область совместной работы и, значит, даже в огромном проекте учитывать только эти разрешения.
Еще плюс - однощелчковое ведение текущих архивов версий разрешенных файлов (т.е. это архив именно рабочей части версии проекта).
Еще плюс - в папке локального проекта нет никаких файлов или папок от системы (.git, .gitignore). Гит создает огромное множество файлов в папке .git локального проекта и удаленного репозитория. И это множество может лавинообразно возрастать даже на простых 100-файловых проектах.
Ну и дополнительно - графический интерфейс.

ВКС ведет лог текущих изменений, который всегда можно посмотреть.

Одним щелчком по кнопке создается текущий архив состояния локального репозитория в папке, названной по текущей дате-времени. Всегда есть вся история версий. Откат – это просто заливка любой из сохраненных версий.

ВКС дает список измененных файлов и возможность видеть разницу в них.

Как и Гит, ВКС может использовать общий репозиторий с функциональностью гитхаб, его сервер по умолчанию имеет адрес https://vcshub.ru, но может быть использован свой собственный, в том числе в качестве рабочего репозитория.

Кроме того, ВКС позволяет работать с любым заданным рабочим сервером, с произвольными параметрами связи по FTP .

Данная версия ВКС, конечно же, далеко не оптимальна (на ее создание был отведен один месяц, работает только под windows, как и гит сначала работал только под линуксом). Но с ее помощью залатаны давно назревшие проблемы управления версиями.

Оптимальная версия ВКС должна быть многопрлатформенной и работать с многими кодировками текстов (сейчас только ANSI и UTF-8).

РАБОТА С VCS

Конечно же, уже есть какая-то локальная папка с файлами, которую решено сделать с поддержкой ведения версий.

Чтобы использовать ВКС нужно прочесть инструкцию help.htm, потом просто распаковать zip-ахив в локальную папку (лучше в корень любого диска) и запустить exe-файл. Возникает вэб-страница, в которой уже все достаточно понятно. Если еще не зарегистрировано ни одного проекта (т.е. папки с файлами на локальном диске), то нужно нажать кнопку « + » и зарегистрировать первый. Затем можно так же зарегистрировать другие проекты. Регистрация - заполнение формы опций проекта:

В опциях важным является перечень разрешенных расширений файлов, которые ограничивают работу только с ними (если перечень пуст, то работа – с любыми файлами).
Кроме того, можно ввести папки, которые будут игнорироваться, чтобы эффективно ограничить число отслеживаемых файлов. Можно ввести папки, которые будут разрешены, а все остальное - нет (так можно задавать папки, которыми жестко ограничивается совместная работа). И еще можно ввести игнорируемые файлы.
Для всех трех списков можно применять звездочку * заменяющую любые символы на этом месте.
ПРИМЕР списка разрешенных папкок:
/aaa/ - эта папка будет разрешена, но все вложенные - нет.
/aaa/* - эта папка будет разрешена, а так же - все вложенные.

После выбора проекта следует в диалоге опций проверить списки игнорирования и разрешений чтобы заранее ограничить область работы с проектом. Затем можно щелкнуть по кнопке Сверка и локальные файлы сравниваются с общим репозиторием, определяются те, которые находятся в редактировании и файлы, закаченные на общий репозиторий после редактирования (одной кнопкой с выборов или закачать все файлы или только те, что редактировались).

В любой момент возможно посмотреть все содержимое отличающегося файла на общем репозитории (и скопировать в буфер обмена) или просто посмотреть различия.

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

Можно безнаказанно работать и напрямую по FTP, и все изменения будут видны на странице ВКС при сверке.

Если видно, что есть измененные файлы на общем репозитории, то следует скачать их в свой проект, нажав кнопку «Скачать с общего». После окончания редактирования файлов можно нажать кнопку «Залить в общий» и написать короткое пояснение по данной версии. Все такие замечания будут доступны в логе.

ЗАЛИВКА ВЕРСИЙ

Всегда имеем дело с локальным репозиторием в сравнении с состоянием общего репозитория (удаленного сервера, где хранятся конечные версии).

Послед отладки редактируемых локальных файлов их заливают на общий репозиторий с помочью кнопки «Залить в общий». При этом на общем не будут затронуты файлы, редактируемые другими соучастниками. Но если нажать рядом красную кнопку «Все», то общий репозиторий станет копией локального, т.е. если на общем есть какие-то файлы, который уже нет на локальном, то они будут удалены.

Аналогично работают кнопки «Скачать с общего» и рядом красная «Все», только файлы будут обновляться на локальном по состоянию на общем.

При нажатии кнопки «Сверка» (справа наверху) происходит сравнение локального и общего репозиториев и выдаются разница в виде списков различающихся файлов. При этом справа от заголовков списков могут быть кнопки, при нажатии на которые копируются только файлы данного списка:
Для заголовка Измененные в локальном: кнопки «Залить в общий» и «Залить в локальный»
Для заголовка Нет в локальном: кнопка «Залить в локальный»
Для заголовка Нет в общем: кнопка «Залить в общий».

Это позволяет обновлять только заданные файлы, никак не затрагивая все остальное.

ЕСЛИ ГЛЮЧИТ СВЕРКА, ЗАКАЧКА ИЛИ СКАЧКА

У некоторых компов какая-то из бдительных систем запрещает все или отдельные действия по FTP. Крутые проги это могут определять и выворачиваться. В данной версии нет приема против этого лома. На большинстве домашних компов все работает, так что нужно бы проверить настройки брандмауэра и антивирусного ПО на компьютере, где возникает ошибка, и убедиться, что они не блокируют доступ к FTP-серверу или локальной директории для сохранения скачанных файлов.

ВАЖНЫЕ ОСОБЕННОСТИ ВЭБ-ИНТЕРФЕЙСА

1. ВКС не позволяет запускать более одного приложения на одном компьютере одновременно. В этом случае выдается вэб-страница с предупреждением.

2. Закрывать окно вместе с фоновым процессом можно просто по крестику окна браузера или вкладки.

РАБОТА С СОБСТВЕННЫМ HUB-СЕРВЕРОМ

Для работы с собственным hub-сервером нужно открыть файл .vcs/vcs_ftp.info и прописать там параметры FTP-доступа к серверу, который может использоваться как общий репозиторий и поддерживает PHP. Аккаунт FTP можно создать как для корня сайта, так и любой его папки. В эту папку нужно закачать содержимое архива own_hub_server.zip и он будет готов для работы.

Есть программное ограничение общего объема файлов общего репозитория в 200 мб. Для того, чтобы использовать ограничение на редактируемые папки версий, избегая длительных процессов. Трудно представить проект с более, чем 200 мб редактируемыми файлами, но можно заказать снять ограничения.

Понятно, что и общий репозиторий и рабочий репозиторий можно задать на одном сервере, с разными папками доступа по FTP.

ОСОБЕННОСТИ РЕАЛИЗАЦИИ

Как и в Гите, в ВКС создается карта файлов локальнoго и общего репозиторий с хешами этих файлов для сравнения (индекс). Это позволяет тратить время только на время (пере)создания индексов. Для сверки локального и общего репозиториев уже не требуется сканирование удаленной папки репозиториев с открытием каждого файла для создания хеша, а используется полученный индекс. При закачке на общий репозиторий обновляется только затронутая часть индекса.

Такое ускорение становится решающе важным для больших проектов. Минимизируя время этот способ порождает побочные проблемы, но уже не столь значительные (правда, в Гите из-за этого все делается втемную).