Настройка для Pharo (и Gemstone )
Каждый разработчик работает в своем собственном образе.Каждое изменение в методе, которое он делает, сохраняется локально в файле изменений.Это позволяет восстанавливать при сбое изображения.Коммиты создаются путем создания файла monticello , содержащего имя пакета, порядковый номер и имя разработчика.Он знает свое происхождение.Этот файл сохраняется на сервере WebDAV .Здесь его подхватывает задача Дженкинса .Это запускает модульные и интеграционные тесты и создает новые образы, поэтому разработчики могут начинать с свежего образа (как минимум) каждый день.Вот некоторые подробности о слиянии с использованием monticello.Состав продукта (структура пакета) представляет собой другой файл monticello, содержащий описание metacello .Это также позволяет разрабатывать на Pharo и развертывать на Gemstone.Время от времени вам нужно добавлять миграции классов.
Для не относящихся к малым разговорам зависимостей и разработки, тестовых приемочных и производственных различий добавьте создание образов виртуальных коробок, используя vagrant , chef-соло (или кукольный , надеюсь, скоро Coral ), veewee .Конечно, они управляются с помощью git.
В дополнение к использованию статических инструментов контроля качества кода ( smallLint , также проверяет различия между диалектами smalltalk), добавьте Moose и создайте свои собственные контекстно-зависимые динамические визуализации проекта (гуманная оценка)
In VisualWorks Smalltalk, локальный разработчик использует STORE с реляционной базой данных (например, PostgreSQL)хранить местные коммиты.Код организован в пакеты пакетов, с пространствами имен.Сценарий репликации используется для копирования локальных версий в центральную базу данных и из нее.Оттуда процесс такой же, как и при настройке Pharo.
[обновление] На Esug2012 Дейл Хенрикс представил работу, позволяющую использовать git и github для управления кодом smalltalk для нескольких диалектов.По сути, была определена файловая структура ( Cypress для Amber, Gemstone, Pharo, Squeak, VisualAge, STIG для VisualWorks) для хранения методов smalltalk в каталогах.В настоящее время это больше направлено на обмен кода между диалектами, чем на замену родному SCM.