Мой рабочий процесс
Опишу в этой статье как у меня происходит процесс создания модулей и работы с кодом.
ОС
В качестве платформы для разработки я использую Linux, а именно Fedora 20. Уже наверное лет 5 использую в качестве единственной ОС - Linux, очень доволен. Это особенно важно для веб-разработчика, так как имеешь у себя не урезанный Денвер, а полноценный веб сервер.
IDE, редактор кода
Для работы с кодом я использую NetBeans IDE 8.0. Он бесплатный, есть версия для Linux, он экономит огромное к-во времени при разработке, так как имеет довольно большой функционал от подсветки кода до работы с git из редактора.
Система контроля версий
В качестве системы контроля версий я использую git. На сегодняшний день это мировой лидер среди систем контроля версий.
Работа с git более детально.
Удобное руководство по git - http://githowto.com/
Для удобства созданы алиасы на все все частые команды, например вместо git branch - git br, вместо git checkout - git ch итд.
У меня есть 2 типа репозиториев:
1. Репозитории для модулей.
- ветка master у меня пустая, там всего 2 файла git для настроек: .gitattributes, .gitignore
- для каждого модуля отдельный репозиторий, например search_suggestion, search_mr, product_statuses итд.
- если нужно создать отдельную версию модуля для отдельной версии движка, например для opencart 1.5.3.1, то создается отдельная ветка opencart1531
- если нужно создать новый функционал, что-то потестить, попробовать, то создается новая ветка, например opencart1531-new_feature, после создания этот новый функционал переноситься в основную ветку через git merge, ветка удаляется
- если новый функционал нужно перенести в другую ветку, то это можно сделать с помощью git cherry-pick - копируется коммит в другую ветку
2. Репозитории для версий opencart сборок.
- называются по названию версий, сборок: opencart1564, ocstore1551 итд.
- ветка master всегда содержит чистый движок с установленным vqmod
- для каждого модуля отдельная ветка
- если нужно перенести новый функционал с репозитория движка в репозиторий модуля, то для этого использую Как скопировать все измененные файлы из последнего коммита в git
Удаленный репозиторий
В качестве удаленного репозитория использую https://bitbucket.org
Он имеет возможность размещать приватный репозитории бесплатно. Это удобно, так во-первых есть копия всего кода на случай ЧП (сгорел винт, украли ноутбук) + доступ к коду имеется с любого места.