Крок вперед два тому

Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.

Крок уперед два тому. або найпростіша система контролю версій

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

  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\

:exit echo missing parameter. goto end

:filexist echo file exists. goto end

v.batrem Занесення версії в скрипт для бази даних 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

Ця проста, але надійна система поряд з неухильним дотриманням правила документування кожного кроку дозволить досить просто вирішити проблему збереження та відстеження версій та інші пов'язані з цією проблемою.