introduction to versioning (vcs) for developers

Post on 26-Jun-2015

212 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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

Iain Hubbard, Development Manager @iainhubbard

Joseph McDermott, Senior Developer @Joseph_McD

We help enterprise businesses develop

& improve ecommerce operations

using open source software

• 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

Magento is an open-source

ecommerce solution, written

in PHP with a MySQL database

• 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

• 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

• 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

• 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

• 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

• 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

• 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

• Distributed vs Centralised

• Git is distributed

• SVN is centralised

• Versions of truth differences

• There are others but we focusing on Git and SVN

• 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

• Centralised

• Created to fix the problems found in CVS

• Features

- Centralised development

- Branches are cheap

- Requires network connection

• Single version of the truth

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

Thank You

Tweet us

Learn more

top related