introduction to versioning (vcs) for developers
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 •DeploymentsTRANSCRIPT
![Page 1: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/1.jpg)
Iain Hubbard, Development Manager @iainhubbard
Joseph McDermott, Senior Developer @Joseph_McD
![Page 2: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/2.jpg)
We help enterprise businesses develop
& improve ecommerce operations
using open source software
![Page 3: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/3.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/4.jpg)
![Page 5: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/5.jpg)
![Page 6: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/6.jpg)
Magento is an open-source
ecommerce solution, written
in PHP with a MySQL database
![Page 7: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/7.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/8.jpg)
![Page 9: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/9.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/10.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/11.jpg)
![Page 12: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/12.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/13.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/14.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/15.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/16.jpg)
![Page 17: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/17.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/18.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/19.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/20.jpg)
![Page 21: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/21.jpg)
![Page 22: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/22.jpg)
![Page 23: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/24.jpg)
![Page 25: Introduction to Versioning (VCS) for Developers](https://reader034.vdocuments.us/reader034/viewer/2022042700/558c77a4d8b42a566c8b463c/html5/thumbnails/25.jpg)
Thank You
Tweet us
Learn more