11
Version Control Reducing risk with version control Jon Austin [email protected]

Version Control Reducing risk with version control Jon Austin [email protected]

Embed Size (px)

Citation preview

Page 1: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Version Control

Reducing risk with version control

Jon [email protected]

Page 2: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Why Version Control?

Reduce Risk Facilitate Group Projects Allows Experimentation Personal Time Machine

Page 3: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Risk Reduction

Distributed Code Base Central Repository Feature Retrieval

Do not forget to perform scheduled backups of your repository!

Page 4: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Group Projects

Every gets a “current” copy of the full source Can assist in code review Don't Always have to wait on others

Merging - Not as bad as it sounds. Conflicts - Can be as bad as it sounds. Blame – As fun as it sounds!

Commit Often... But... NEVER commit broken code to the trunk.

Page 5: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Allows Experimentation

Peace of mind I know my code is safe, what if I change

x?

Branching Try out new features without polluting

trunk Play in a sandbox

Page 6: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Personal Time Machine

Remember when...? Whoops, I deleted X! Who changed that? Ask the log! Why did I change that? Ask the log!

Page 7: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

VCS Choices

SubVersion Stable and widely used Reasonably straightforward Cross Platform

Git Local change tracking

Many more

Page 8: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Usage

Create your Repository Place your project in it Add your project (Registers it with SVN) Ignore (bin folder, class files, private settings) Commit (Writes your changes to SVN) Check for Modifications (See what changed) Update (Pull the latest changes)

Page 9: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Terminology

Working Copy Trunk Tag Branch & Switch Revert Patch Diff/Compare

Page 10: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Have a Process

Make your changes Update your working copy Resolve any conflicts Recompile and re-test! Commit your changes

Page 11: Version Control Reducing risk with version control Jon Austin jon@jonhappens.com

Free Hosting Resources

Rioux SVN - https://riouxsvn.com Free Private

Assembla - https://www.assembla.com Free Private

Version Shelf - https://www.versionshelf.com Free Student/Teacher accounts