Шаг вперед два назад... или простейшая система контроля версий

© 2002 Кубанычбек Тажмамат уулу
г. Ош, Кыргызстан


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

  1. Помогать отслеживать каждый шаг при изменении программного кода.
  2. Автоматически вставлять номер шага (билда) в исходники скриптов по сборке базы данных или приложения.
  3. При потере контроля над ситуацией или обнаружении ошибочного поведения системы дать возможность отступить назад на некоторое число шагов.
  4. Обеспечивать некоторую безопасность исходного кода и, возможно, паролей, содержащихся в исходном коде.

Минимальные необходимые и достаточные требования могут выполнятся при помощи командных скриптов - bat файлов. Допустим, Ваши проекты хранятся в d:\test, а исходники данного проекта, который надо отслеживать - по пути d:\test\ver\myproj001\ . В этом каталоге (и вложенных в него подкаталогах) должны храниться только исходные коды, скрипты и документация, все компилированные файлы и файлы баз данных должны выносится за его пределы (например, в каталогах d:\test\bin, d:\test\dcu, d:\test\db и т.д.). Вот и тексты командных файлов, содержащихся в нашем примере в каталоге d:\test\ver\myproj001\.

commit.bat (вызывается с параметром - номеров версии)
rem Проверка параметра вызова командного файла
if .%1.==.. goto exit

rem Проверка наличия версии с одинаковым номером
if exist d:\test\ver\myproj001st%1.rar goto filexist

rem Внесение номера версии в скрипты и исходники
call v.bat %1

cd d:\test\ver\
del d:\test\ver\myproj001.rar

rem Упаковка с паролем
rar a -ap -r -m5 -ptisheedeshdalshebudesh myproj001.rar myproj001\

rem Закрытие версии с заданным номером
copy myproj001.rar myproj001st%1.rar

goto end

:exit
echo missing parameter!!!!!!
goto end

:filexist
echo file exists!!!!!!
goto end

:end

v.bat
rem Занесение версии в скрипт для базы данных
echo insert into vers(vers,dt) values ( %1 ,'NOW'); >ver.sql

rem Занесение версии в исходники или ресурсы приложений
echo unit vers; >vers.pas
echo interface >>vers.pas
echo const >>vers.pas
echo build_vers=%1; >>vers.pas
echo implementation >>vers.pas
echo end. >>vers.pas

Процесс закрытия версии состоит в вызове commit.bat с номером закрываемой версии. В том же каталоге рекомендуется вести файлы todo.txt с описанием того, что надо сделать и history.txt с описанием того, что сделано с привязкой к номеру версии. Упакованные таким образом файлы версий исходного кода и документации можно хранить в надежном месте - на ftp или cd.

Используемое ПО - хорошо известные Far и Rar (www.rarosoft.com). Естественно, командно-строчный файл Rar.exe должен находится по доступному пути, например, win*\command

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



Новости за месяц

  • Июнь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс