introduction to versioning (vcs) for developers

25
Iain Hubbard, Development Manager @iainhubbard Joseph McDermott, Senior Developer @Joseph_McD

Upload: ampersand

Post on 26-Jun-2015

211 views

Category:

Technology


2 download

DESCRIPTION

Introduction to Versioning: SVN, Git •Manage your code efficiently •Develop multiple features at the same time •Allow you to go back if disaster strikes •Know exactly what was changed, by who and when •Code reviews •Continuous integration •Share code •Deployments

TRANSCRIPT

Page 1: Introduction to Versioning (VCS) for Developers

Iain Hubbard, Development Manager @iainhubbard

Joseph McDermott, Senior Developer @Joseph_McD

Page 2: Introduction to Versioning (VCS) for Developers

We help enterprise businesses develop

& improve ecommerce operations

using open source software

Page 3: Introduction to Versioning (VCS) for Developers

• Founded in 2008

• Located in the Northern Quarter, Manchester

• Magento Gold Solution Partner

• Technical agency focused on Magento Enterprise

• Team of 25 people

Featured Customers

Page 4: Introduction to Versioning (VCS) for Developers
Page 5: Introduction to Versioning (VCS) for Developers
Page 6: Introduction to Versioning (VCS) for Developers

Magento is an open-source

ecommerce solution, written

in PHP with a MySQL database

Page 7: Introduction to Versioning (VCS) for Developers

• Open source eCommerce platform

• Written in PHP using Zend Framework

• MySQL database

• MVC

• Its free! (well… some of it)

• Everything you need to sell online

• Modular architecture

Page 8: Introduction to Versioning (VCS) for Developers
Page 9: Introduction to Versioning (VCS) for Developers

• History of changes

• Somewhere to share your code

• Facilitates team work

- ie. same files, same time, different places

• Somewhere to browse your code

• Helps document changes

• Development workflow

• Backup

Page 10: Introduction to Versioning (VCS) for Developers

• Track down problems

• Manage your code efficiently

• Develop multiple features at the same time

• Allow you to go back if disaster strikes

• Know exactly what was changed, by who and when

• Code reviews

• Continuous integration

• Share code

• Deployments

Page 11: Introduction to Versioning (VCS) for Developers
Page 12: Introduction to Versioning (VCS) for Developers

• Don’t have time for version control

• 1 developer works alone on 1 project

• Teams email updated files to each other

• Keep history of files named xxx.bak1, xxx.bak2

• Developers “pass the spoon” around

• Manual FTP of files to deploy

Page 13: Introduction to Versioning (VCS) for Developers

• We use SVN (for now)

• Many developers work together on many projects

• Any developer can work on any file on any project at any time

• We use a hosted solution, Beanstalk, which we’ll introduce in the workshop

Page 14: Introduction to Versioning (VCS) for Developers

• Branch for development, staging and trunk

• All developers work automatically deployed from development

• Client signs off work on staging

• We deploy to production from trunk

• We create short lived feature branches as required

Page 15: Introduction to Versioning (VCS) for Developers

• We know every change to every file in every deployment, ever

• Problem with a website, we start with what changed and who changed it

• Lead developer can easily monitor important changes or new starters

• Our clients have access to review and can also commit changes

Page 16: Introduction to Versioning (VCS) for Developers
Page 17: Introduction to Versioning (VCS) for Developers

• Distributed vs Centralised

• Git is distributed

• SVN is centralised

• Versions of truth differences

• There are others but we focusing on Git and SVN

Page 18: Introduction to Versioning (VCS) for Developers

• Distributed

• Created to support development of the Linux kernel

• Features

- Distributed development

- Efficient handling of large projects

- Don’t need internet connection

• Many versions of the truth

Page 19: Introduction to Versioning (VCS) for Developers

• Centralised

• Created to fix the problems found in CVS

• Features

- Centralised development

- Branches are cheap

- Requires network connection

• Single version of the truth

Page 20: Introduction to Versioning (VCS) for Developers
Page 21: Introduction to Versioning (VCS) for Developers
Page 22: Introduction to Versioning (VCS) for Developers
Page 23: Introduction to Versioning (VCS) for Developers

CV Deadline: TBC Start Date: Jul/Sept

• Basic Requirements

• Object-oriented programming and design skills

• Attention to detail!

• Demonstrable programming ability

• Desirable Skills

• PHP

• MVC

• SQL

• Linux/Unix

• jQuery, Prototype or other JavaScript experience

Page 24: Introduction to Versioning (VCS) for Developers
Page 25: Introduction to Versioning (VCS) for Developers

Thank You

Tweet us

Learn more