Episode 10: Version Control 101

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”
- 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.
- 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 VCS allows many software developers to work on a given project without requiring them to share a common network.
- Git, created by Linus Torvalds
- Git Management Tools
- Git Management Tools
- Tower
- Sourcetree
- Git command line
- Github
- Best practices for Git
- Unity is particular about how they handle external VCS
- Perforce
- More ‘centralized’ than Git in that the Perforce server manages a central database and a master repository of file versions.
- Scene text format
- Meta files to help facilitate the management of file differences.
- Beyond Compare (Scooter Software)
1 Comment
There’s a great interactive way to learn the intricacies of git here: http://pcottle.github.io/learnGitBranching/