Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Setting up a

Development » Staging » Production

Workflow with Git & Gitify

by Mark Hamstra

The Problem

Versioning Data

from the database

How do you track changes to Resources, Elements and other objects in relation to your assets and other development?


from file to DB and back

How do you keep copies of the same data in sync, when spread across the database/filesystem, team members or servers? How do you handle conflicts?


building exact copies

Is your workflow flexible enough to use continuous integration, or to quickly create additional copies for testing specific changes?

Solution Requirements

Two-way File Sync

for all xPDOObject deriv's

Edit any type of data via the manager, or via file, and make it work seamlessly. Files need to be human readable.

Works with Git

because it's awesome

Git solves a lot of tricky problems related to branching and conflicts. Plus, you're already using it for assets.

Easy to learn & use

Set up once, use everywhere

Simple install, per project configuration and a future visual interface makes it possible for non-technical people to also get involved.

Introducing Gitify



Marks-Macbook-Air:htdocs$ git clone

Cloning into 'Gitify'...
remote: Counting objects: 100, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 100 (delta 6), reused 0 (delta 0)
Receiving objects: 100% (100/100), 57.30 KiB, done.
Resolving deltas: 100% (30/30), done.

Marks-Macbook-Air:htdocs$ cd Gitify

Marks-Macbook-Air:Gitify$ chmod +x Gitify

name: Gitify Test
data_directory: _data/
    class: modContext
    primary: key
    type: content
      - createdby
      - createdon
      - editedby
      - editedon
    class: modCategory
    primary: category
    class: modTemplate
    primary: templatename
    extension: .html
    class: modChunk
    primary: name
  wayfinder: 1.2.4-pl
  getresources: 1.6.1-pl


Gitify init


Marks-MacBook-Air:test$ Gitify init
|14:16:46| > Please enter a Project Name: Gitify Test
|14:16:51| > Please enter the relative Data Directory: _data
|14:16:53| Creating new data directory /path/to/test/_data/
|14:16:53| > Include Contexts? (Y/N) [Y] Y
|14:16:54| > Include Content? (Y/N) [Y] Y
|14:16:56| > Include Elements? (Y/N) [Y] Y
|14:16:59| Created new Gitify project in /path/to/test/
|14:16:59| > No MODX installation found. Would you like to install the latest stable MODX version? (Y/N) N