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?

Synchronization

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?

Replication

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

Installation

×
-
+
not_a_real_terminal.app

Marks-Macbook-Air:htdocs$ git clone https://github.com/modmore/Gitify.git

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/
data:
  contexts:
    class: modContext
    primary: key
  content:
    type: content
    exclude_keys:
      - createdby
      - createdon
      - editedby
      - editedon
  categories:
    class: modCategory
    primary: category
  templates:
    class: modTemplate
    primary: templatename
    extension: .html
  chunks:
    class: modChunk
    primary: name
packages:
  wayfinder: 1.2.4-pl
  getresources: 1.6.1-pl

.gitify

Gitify init

×
-
+
not_a_real_terminal.app

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