Archive for June, 2005

Google Maps API

Thursday, June 30th, 2005

Recently Google released API for Google’s Maps. Even API is version as “1″ for my personal opinion there will be a lot of changes (improvements) in the couple of months. People in discussion group request more and more features.

In general API is easy to use if you have some JavaScript knowledge. Personally I like utilizing Google Maps together with AJAX calls.
I’ve created example which shows places where I’ve been in last couple of years. It is available at http://abidcom.com/maps/index.php.

Subversion 1.2 Release

Thursday, June 30th, 2005

23 Травня 2005 Subversion анонсувала свій 1.2 реліз. Одночасно з деякими баг-фіксами і змінами в API я б хотів звернути увагу на 2 важливі речі.
1. Тип дата сховища для новогоствореного репозиторію по замовчуванню тепер буде FSFS на відміну від попередньоїї Berkeley DB. Інофрмацію про ці два типи ви зможете почерпнути тут http://svnbook.red-bean.com/en/1.1/ch05.html#svn-ch-5-sect-1.3

2. Дадана можливість локування файлів “File Locking”. Це є найбільш довгоочікувана і бажана “фіча”. Так як Subversion є “copy-modify-merge” системою для парелельної розробки ПЗ, то час від часу можуть виникати проблеми з тим що не всі файли можна об”єднати (merge). Наприклад двійкові файли. Тепер “File Locking”дає можливість залокувати файл і уникнути можливої його зміни іншими розробниками.
Локування можна відслідкувати за допомогою команди svn status або svn status -u, яка покаже інофрмацію про локування безпосередньо в репозиторії. svn info дозволяю отримати детальну інформацію про залокований файл: хто залокував, коли, коментар щодо локування.

Даклатно про всі зміни можна почитати у Realease Notes

SVN repository backup shell script

Tuesday, June 28th, 2005

Після створення SVN репозиторіїї необхідно подбати про створення резервних копій цієї репозиторії, з подальшим бекапуванням (копіюванням) даних на інші носії інофрмації.
Найзручнішим способом створення дампу репозиторії - це є використання svnadmin утілити яка вхидить в дистрибутив Subversion. Важливим моментом є те що зберижеться все дерево операцій, які відбувались у репозиторії(всі commits, merge, і тд). Топто репозиторія буде відтворена точно один в один до попереднього стану.

Для створеня дампу репозиторії я пропоную наступний скрипт. Він компресує дамп, і створює результуючий файл використовуючи наступну схему для імені файлу:
ПРОЕКТ_svn_rep_ДАТА_revНОМЕРМОЛОДШОГОREVISION.dump.bz
ProjectA_svn_rep_20050626_rev10.dump.bz
ProjectA_svn_rep_20050627_rev11.dump.bz

Ось як виглядає цей простенький файл. Ви також можете скачати його тут.

#!/bin/sh
PROJECT=ProjectA
REP_HOME=/home/svn/
BACKUP=/home/svn/bak
SVN="$REP_HOME$PROJECT"
echo "$(date) $PROJECT SVN dump started."
/usr/local/bin/svnadmin dump ${SVN} | /usr/bin/bzip2 > ${BACKUP}/${PROJECT}_svn_rep_`date +%Y%m%d`_rev`/usr/local/bin/svnlook youngest ${SVN}`.dump.bz
echo "$(date) $PROJECT SVN dump completed."

Далі потрібно надаштувати cron, або інший scheduler для автоматичного виконання цього скрипта. Ясно що найкращий час для створення дампу репозиторію є ніч. Хоча це може бути і ранок, коли всі програмісти ще сплять.
crontab -e
Скрипт автоматично буде виконуватись кожного дня о 3-ій годині ночі.
0 3 * * * /home/svn/bin/ProjectA_rep_backup >> /home/svn/bin/ProjectA_rep_backup.log
Хочу звернути увагу на перенаправлення виводу у лог файл ProjectA_rep_backup.log. Це дасть змогу відслідкувати помилки які можуть трапитись під час виконання бекапу репозиторії.

Для того щоб подивитись список задач у cron-i достатньо виконати наступну команду
crontab -l

Структура SVN Репозиторію

Tuesday, June 28th, 2005

Автори книжки “Version Control with Subversion” рекомендують зберігати декілька проектів в одній і тій самій репозиторії.

projectA/trunk
projectA/branches
projectA/tags

projectB/trunk
projectB/branches
projectB/tags

Я з цим рішенням можу погодитись частково. Дана структура має зміст якщо дані проекти є взаємозвязані, і до цих проектів мають доступ одні і ті самі користувачі.
В протилежному випадку зручнішим є створення і адміністрування окремих репозиторій для projectA і для projectB. Це дасть змогу більш гнучко конфігурувати, адмініструвати і бекапити окремо взяті репозиторії.

Versioning of symbolic links

Thursday, June 23rd, 2005

Якщо ви працюєте на операційній системі *NIX, то мубудь знаєте що таке symbolic link, то ж я не буду зупинятись на цьому.
Так от, якщо ваш проект використовує symbolic link, то природньо що ви хочете помістити їх у систему контроль якості. І SVN дозволяє зробити це.

# Versioning of symbolic links

Unix users can place symbolic links under version control. The links are recreated in Unix working copies, but not in win32 working copies.

Але при цьому можуть бути нюанси якщи ви використовуєте TortoiseSVN для роботи з робочою копією SVN репозиторії яка розміщена на *NIX машині і при цьому доступ відбувається через Samba. У цьому випадку коли здійснюється checkout, export репозиторії, то symbolic link створюватись не будуть. Це проблема виключно TortoiseSVN.
Як вирішити її?
Працювати напряму на *NIX машині (використовувати команди svn checkout, svn export, і т.д.)

Корисні ресурси

Thursday, June 23rd, 2005

Version Control with Subversion - Online-версія книжки;
http://subversion.tigris.org/ - cайт проекту Subversion;
TortoiseSVN - графічний інтерфейс для роботи з Subversion(SVN);

DIRINFO

Thursday, June 23rd, 2005

Дана гілка блогу буде корисна тим хто займається програмуванням і цікавиться системами контролю версій. Так як я є прихильником Open Source програмних продуктів і активним користувачем Subversion, то природньо що і я буду описувати користування і адміністрування Subversion. Топто це повинна бути справдня допомога україномовним користувачам Сабвершн.

Мої пости не будуть перекладом manul-a. Це буде скорше всього збірник порад по окремих питаннях. Хоча вони може стануть фундаментом для створення документації по Subversion на українській мові. Але це майбутнє.

Let’s start.

DIRINFO

Tuesday, June 21st, 2005

Час від часу з якихось патріотичних причин виникає бажання поділитись чимось цікавим в області програмного забезпечення і зробити це українською мовою. Для цього буде існувати ця вітка.

Я переконаний, що багато хто знайде інформацію у цій гілці корисною і зможе її використати з користю для себе і для України.