Крок вперед два тому
Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.
Крок уперед два тому. або найпростіша система контролю версій
Поставимо собі завдання: зібрати з підручних матеріалів просту, але функціонально завершену систему контролю версій до роботи в однопользовательском режимі. Вона повинна виконувати такі завдання:
- Допомагати відстежувати кожен крок під час зміни програмного коду.
- Автоматично вставляти номер кроку (білда) у вихідні дані скриптів зі збирання бази даних або програми.
- При втраті контролю над ситуацією або виявлення помилкової поведінки системи дати можливість відступити назад на кілька кроків.
- Забезпечувати певну безпеку вихідного коду та, можливо, паролів, що містяться у вихідному коді.
Мінімальні необхідні та достатні вимоги можуть виконуватись за допомогою командних скриптів - 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
Ця проста, але надійна система поряд з неухильним дотриманням правила документування кожного кроку дозволить досить просто вирішити проблему збереження та відстеження версій та інші пов'язані з цією проблемою.