Using Git with Drupal

Preview:

DESCRIPTION

 

Citation preview

Using GIT with DrupalDrupal Camp Sydney - 18 Oct 2008

Who am I

A long time member of the Drupal community. About 7 yrs

Full time Drupal consultant

Lead maintainer of the e-Commerce system

What is GIT

A Source Code Management system created by Linus Torvalds

Decentralized SCM

Amazing branching and merging capibilities

Extremely Fast

Advantages of Git

All commits are guaranteed to be written as is to the repository

Has a chain of evidence to seeing who wrote the patch, who tested the patch, and who committed the patch.

Branches are quick and inexpensive

Merges are extremely powerful

Using Git with Drupal

Interfacing with CVS

Built in ability to access other SCM systems like CVS, SVN, and others.

Can usually import and export to other SCM

Getting code of out contrib.

git cvsimport -d:pserver:anonymous@cvs.drupal.org:/cvs/drupal-contrib -C modulename -a contributions/modules/name_of_contrib_module

Committing changes

Make changes

git add filename

git commit

Exporting changes back

GIT_DIR=path_to_.git git cvsexportcommit -cv hash

Creating a branch

git branch branch_name head_of branch

git checkout branch_name

Merging

git merge branch_name

Using GIT for clients

Base System

Has all modules that I use with all clients. views, cck, panels etc

Update any changes to base system in 1 place.

Creating a site

git clone base new_system

git branch website

Installing new modules

Download tarball from drupal.org, unpack and commit to the repository

Uploading to remote site.Set up remote repository

git clone --bare site site.git

copy site.git to webserver

add remote section to .git/config

git push website

Add to hook to automatically pull the changing into the site

Updating Site from Base

git pull

Questions