Version control system (VCS)

NOTE: This page is obsolete and retained only for reference. Please refer to the OIST github account.

1. Introduction

For individual and collaborative projects, version control systems have proved to be useful to keep track of the modification made to the project data files. When per example, mistakes are made or something goes wrong it is often helpful to be able to go back to an older version or to obtain records of what were actually changed in the data. Moreover, VCS allows to have a record of the decisions and the steps taken during the whole project life.
VCS records the changes and edition made to each project data file (plain texts, source codes, scripts, binaries etc.) and also keeps a history of the changes made to a project copy (called repository) by recording them into metadata files and assigning version to each record.

2. Centralized versus Distributed VCS

Version control systems divide into two groups: centralized and distributed. Centralized version control systems were the first designed VCS and are based on the principle that there exist only one central copy of your project (somewhere on a server) that contains the full history of your changes. Each contributor of the project will "commit" their changes to the central copy. Centralized VCS's usually require a permanent stable network connection between contributors, and coordination in the order they made their changes. SVN is a centralized version control system.
Distributed version control systems (DVCS) are more recent VCS. The idea behind DVCS is that each contributor may have several copies of the project and each copy contains the full history of the changes. Per example, local changes made by a contributor can be "push" into a "master" copy owned by one of the contributors (ex: project head), then other contributors can retrieve the changes made by "pulling" from the "master" copy. DVCS allows to work (make changes and "commit" them) on a local copy without the need of a network connection or coordination, and also allows to merge later the work done locally to other remote copies. GIT is a distributed version control system.

3. GIT and SVN at OIST

The tutorial materials below is for those of you that really want to use the space dedicated to VCS repositories at OIST. Otherwise, we recommend to use OIST GitHub service that allows you to use all the advanced features of GitHub.

OIST users can use a dedicated space on the login.oist.jp server to host their VCS project repositories, and access their remote repositories either from inside or outside the campus. Below you will find tutorials on how to setup remote repositories at OIST.

Remote GIT repository tutorial
Work on copies of your remote GIT repository

Remote SVN repository tutorial
Work on your remote SVN repository