Episode 10: Version Control 101

Download the Episode Here

A personal Github account with Large File Storage: $0. Hosting a server for your repository: $300. Writing an epic compression algorithm that you lose because you didn’t have your project under source control: priceless. Devs, don’t be -that- person! Set your projects up with version control — early and often.

In this episode we do a survey of the more popular version control systems (VCS) made available to developers, while also covering the advantages and disadvantages of each. The crew, sans Eduardo, share stories about their experiences with both centralized and distributed VCSs and recommend tips and tricks on managing your project.

We appreciate you tuning in this week and we hope that you enjoy the show! Feel free to send any emails with comments, questions, and concerns about version control in Unity to: thedebuglog@gmail.com

Game of the Week

Godus – 22Cans

TL;DL  — “Too long, didn’t listen”

Definitions of Note:

  • Version Control System (VCS): Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later (Git-scm).
  • Changeset/Change list: SEE Wikipedia page on Common Vocabulary.
  • Cloning Files: Cloning a git repository means that you create a local copy of the code.
  • Branching: Branching is the duplication of an object under revision control (such as a source code file or a directory tree) so that modifications can happen in parallel along both branches (Wikipedia).
  • Merging: Merging is a fundamental operation that reconciles multiple changes made to a revision-controlled collection of files. Most often, it is necessary when a file is modified by two people on two different computers at the same time. When two branches are merged, the result is a single collection of files that contains both sets of changes (Wikipedia).
  • Committing: SEE Wikipedia page on Common Vocabulary.
Version Control Fear Factor:
  • Usually people are hesitant to learn or implement version/source control into their projects simply due to the fact that they don’t understand it.
  • It’s important to integrate source control into your projects regardless of whether this is just a ‘personal project’ or a complex, multi-team project.
  • There are several advantages to having your source versioned.

Source Control:

  • Allows for experimentation and feature implementations without risk to your main source with branching and change sets.
  • It seems like a lot of developers are more interested in learning new languages then picking up basic development tools and methodologies (command line, version control, etc). Not good! Learn to version your project ASAP.
Distributed Version Control Systems:
  • Distributed VCS allows many software developers to work on a given project without requiring them to share a common network.
VCS Options:
Unity’s attempt to help merge files:
Diff and Merge tool:

Take a second to support The Debug Log on Patreon!
Previous post

Episode 9: Motion Capture on a Budget with James C. Martin

Next post

Episode 11: 2015 IGF Grand Prize Winner and Crowdfunding Pioneers

1 Comment

  1. September 16, 2015 at 6:14 pm — Reply

    There’s a great interactive way to learn the intricacies of git here: http://pcottle.github.io/learnGitBranching/

Leave a reply

Your email address will not be published. Required fields are marked *