This blog mainly contains posts about Mozilla release engineering projects that I am working on and some personal insights.

Monday, March 02, 2009

Student's guide on using mercurial - Working outline

We are writing a student guide that will help first year students to deal with the concepts of Version Control Systems. We have chosen mercurial as the tool that we will use for our practical examples since we know how easy and powerful it is.

This user guide will help students from CS programs since at some point they have to deal with versioning control systems in some of their courses and later on when they reach the development world after graduation.

We believe that there is a knowledge gap in our school and learning the concepts and the tools as students will empower us to contribute in a better manner in school and in the real world.

Here is the working outline which we have divided into the theoretical concepts involved and the practical examples. We also see the need to help students not to depend on their schools' infrastructure by giving them tricks on different ways to set their own setups.

By the way, which discussion group would you suggest me to use if I want to ask how you guys use mercurial and how you manage your patches, merges and others?

Let's the learning begin!

WORKING OUTLINE

SECTION 1 – THEORY PART

IntroductionIntroduce readers to purpose of paper

What version control systems areExplain that they are used mainly for source code

File locking and versions mergingExplain the differences between them. We are going to explain the second one

What a distributed VCS isExplanation

Advantages over non-distributedExplain the advantages

VCS concepts

Versioning

Diffs

Patches - Reviews

Branching

Merging

Use of VCS in schoolFind what are good reasons to for students to use it

AssignmentsMany students have done collaboratively assignment without VCS

Real world experienceExplain why using VCS early as a student is helpful to the reality of developers

SECTION 2 – PRACTICAL PART

Work on bugs - Lifecycle of a healthy patchExplain few scenarios from developers’ workflow