Hg branch, hg merge

Сен 06
2011

Intro

Использовать системы контроля версий в таких задачах как разработка ПО или создание сайтов нынче хороший тон. Так уж сложилось, что в момент выбора куда смигрировать с SVN я решил использовать Mercurial, на тот момент мне эта система показалась немного более простой и удобной, нежели Git. С увеличением количества разработчиков в проекте, ну или просто, если хочется, что бы в репозитории был порядок, неизбежно все приходят к использованию веток. Даже в небольших проектах у меня всегда 2 ветки: default и devel, остальные возникают и исчезают по необходимости. В default, всегда находится стабильный, оттестированый код (хотя чего греха таить, баги тут тоже обитают), devel — общая для всех ветвь разрабатываемого кода, от которой, в процессе, могут создаваться дополнительные ветки для реализации новых фич. Вообще механизм веток в Mercurial не столь прозрачен, на мой взгляд, как в Git, там, как раз таки, данный механизм реализован более удачно. Мне привычнее использовать named branches.

Создание ветки

hg branch test
hg ci -m "new branch for testing code"
hg push --new-branch

Слияния веток

hg up default
hg merge test
hg ci -m "merge with test branch"
hg push

Закрытие ветки

hg up test
hg ci -m "close test branch" --close-branch
hg push

Вот так, довольно просто, можно использовать ветки в Mercurial. Это далеко не единственный вариант, например есть еще перемещаемые маркеры, они же bookmarks.

MySQL Workbench и Doctrine ORM

Июн 08
2011

Некоторое время назад я рассказывал о том, как настроить CodeIgniter, Doctrine ORM и Swift. Сегодня расскажу о том, как ускорить этап создания прототипа приложения, создаваемого на этой связке, с помощью MySQL Workbench.

Workbench позволяет создавать визуальную схему базы данных, учитывающую как типы хранимых данных, так и связи между таблицами. Из разработанной диаграммы можно напрямую создать новую базу, работает и обратный принцип — для создания диаграммы можно использовать структуру существующей БД, это удобно в том случае, если нужно быстро расширить архитектуру базы.

Закончив проектирование остается сделать совсем немного. Во-первых, закрепляем все изменения в БД. После этого в дело вступает Doctrine:

//Создаем schema.yml на основе структуры БД
php doctrine generate-yaml-db
//Создаем файлы моделей на основе структуры БД
php doctrine generate-models-db

В результате будут сгенерированы файлы моделей, после этого — have fun :)

Настройка Codeigniter 2, Doctrine 1.2 и Swift Mailer 4.0

Май 06
2011

Пояснение по поводу версий

Для связки используются версии: CI — 2.0.2, Doctrine — 1.2.3, Swift — 4.0.6. В общем-то все это добро запустится на php-5.2.x и выше, но так как Doctrine 2 требует php-5.3.x, что не всегда встретишь на shared hosting’е, да и не на каждом VDS, то будем использовать последнюю стабильную версию ветки 1.х.х.

Где взять

Все перечисленные компоненты можно скачать:

или выдернуть из систем контроля версий:

  • Codeigniter — hg clone ssh://hg@bitbucket.org/ellislab/codeigniter-reactor
  • Doctrine — git clone git://github.com/doctrine/doctrine1.git
  • Swift — git clone git://github.com/swiftmailer/swiftmailer.git

Read the rest of this entry »

Локальный ftp-сервер для WordPress разработчика

Май 04
2011

Известно, что для обновления платформы и плагинов WordPress использует ftp. Что бы использовать возможность обновления на локальной машине установим и настроим локальный ftp-сервер.

Нижеизложенное будет работать везде, в качестве примера будем использовать Ubuntu и vsftpd:

1. Установим vsftpd

sudo apt-get install vsftpd

2. Настроим его (следующие строки должны быть раскомментированы):

listen=YES
local_enable=YES
write_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120

3. Применим настройки

sudo service vsftpd restart

Все. Можно спокойно обновляться через админку на локальной машине, достаточно указать локальный адрес, пользователя и его пароль:

Установка Ruby on Rails в Ubuntu

Апр 05
2011

В последнее время все с большим интересом смотрю в сторону Ruby on Rails. Что и говорить, Symfony и Codeigniter, которые я постоянно использую для разработки, очевидно, немало идей почерпнули именно из этого фреймворка.

Итак, в качестве основной системы возьмем Ubuntu, что в прочем не играет большой роли, так как установка на других системах не будет кардинально отличаться. Для начала установим необходимые пакеты.

sudo apt-get install ruby1.8 ruby1.8-dev rubygems1.8 libmysql-ruby1.8 librmagick-ruby1.8 libsqlite3-ruby libsqlite3-dev build-essential libmagick9-dev libmysqlclient-dev

Будем считать, что mysql уже установлен. Пакеты *-dev нужны для корректной сборки gem’ов. Установим rubygems-update, что бы наши gem’ы всегда были в актуальном состоянии.

sudo gem install rubygems-update

Теперь непосредственно установим Rails и несколько дополнительных плагинов.

sudo gem install rails --include-dependencies mysql2 sqlite3-ruby rmagick mongrel

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

cd ~/project/script/ruby/rais
/var/lib/gems/1.8/bin/rails new myapp
cd myapp
/var/lib/gems/1.8/bin/bundle install
/var/lib/gems/1.8/bin/rails server

Открываем страницу http://0.0.0.0:3000/ и если все установилось правильно, то мы увидим тестовую страницу.

Ruby on Rails test page

Так как речь идет об Ubuntu (на других системах пока не проверял), то учитываем, что gem’ы будут устанавливаться в /var/lib/gems/1.8, что бы вызывать команды rails, bundle, rake и прочие приложения без указания полного пути к ним, нам нужно добавить директорию /var/lib/gems/1.8/bin в переменную окружения $PATH. Отредактируем для этого .bashrc файл:

PATH=$PATH:/var/lib/gems/1.8/bin
export PATH

1 из 212
Real Time Web Analytics