Introduction to Versioning (VCS) for Developers

452 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
452
On SlideShare
0
From Embeds
0
Number of Embeds
114
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduction to Versioning (VCS) for Developers

  1. 1. Iain Hubbard, Development Manager @iainhubbard Joseph McDermott, Senior Developer @Joseph_McD
  2. 2. We help enterprise businesses develop & improve ecommerce operations using open source software
  3. 3. • 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
  4. 4. Magento is an open-source ecommerce solution, written in PHP with a MySQL database
  5. 5. • 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
  6. 6. • 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
  7. 7. • 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
  8. 8. • 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
  9. 9. • 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
  10. 10. • 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
  11. 11. • 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
  12. 12. • Distributed vs Centralised • Git is distributed • SVN is centralised • Versions of truth differences • There are others but we focusing on Git and SVN
  13. 13. • 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
  14. 14. • Centralised • Created to fix the problems found in CVS • Features - Centralised development - Branches are cheap - Requires network connection • Single version of the truth
  15. 15. 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
  16. 16. Thank You Tweet us Learn more

×