FlightGear Git: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(→‎Quick Start: OpenThreads-Issue: use branch head/next instead of maint)
mNo edit summary
Line 1: Line 1:
The [[FlightGear]] project has changed version control system from CVS to [http://git-scm.com Git] due to a hardware failure on the CVS servers (see the "Motivation" section).
In May 2010, after a hardware failure on the CVS servers, the [[FlightGear]] project changed version control system from [[CVS]] to '''Git'''. The Git repositories are located at [http://gitorious.org/fg Gitorious].  


Windows users may want to check out [http://code.google.com/p/tortoisegit/ tortoisegit] which provides a convenient graphical user interface on top of the features provided by Git, and works for both 32 bit and 64 bit Windows: http://code.google.com/p/tortoisegit/downloads/list
Due to the recent switch, we are currently doing our best on providing manuals for obtaining FlightGear through Git. The following articles are work in progress as of June 1st:
* '''Mac OS X:''' [[FlightGear Git on Mac OS X]]
* '''Windows:''' [[FlightGear Git on Windows]]


Mac OS X users may want to take a look at [[GIT (CVS) - Version install of FlightGear on OSX]] which is work in progress as of 05/2010.
==Quick start==
 
==Quick Start==
The Git repositories are located at http://gitorious.org/fg.
To check out the maintenance branch of [[SimGear]]:
To check out the maintenance branch of [[SimGear]]:


Line 13: Line 12:
  git checkout -b maint origin/maint
  git checkout -b maint origin/maint


Repeat for [[FlightGear]]:
Repeat that for FlightGear, with a slightly different command:


  git clone git://gitorious.org/fg/flightgear.git
  git clone git://gitorious.org/fg/flightgear.git
Line 19: Line 18:
  git checkout -b maint origin/maint
  git checkout -b maint origin/maint


The base package is available at http://gitorious.org/fg/fgdata
The base package is available at http://gitorious.org/fg/fgdata, which we clone:


  git clone git://gitorious.org/fg/fgdata
  git clone git://gitorious.org/fg/fgdata
Line 32: Line 31:
* Much better support for everyday tasks like searching the project history for changes, viewing changes, bisecting the project history to find the original source of a bug.
* Much better support for everyday tasks like searching the project history for changes, viewing changes, bisecting the project history to find the original source of a bug.


Also, the CVS servers had a hardware failure on May 2010, leading to FlightGear's change from CVS to Git.
Also, the CVS servers had a hardware failure on May 2010, speeding up FlightGear's change to Git.


== FlightGear and Git ==
== FlightGear and Git ==
Line 51: Line 50:
[http://www.kernel.org/pub/software/scm/git/docs/howto/maintain-git.txt This description] is very technical; you will surely have achieved git-fu if completely understand it. However, the idea of maintaining several branches of different stability is common in collaborative software projects.
[http://www.kernel.org/pub/software/scm/git/docs/howto/maintain-git.txt This description] is very technical; you will surely have achieved git-fu if completely understand it. However, the idea of maintaining several branches of different stability is common in collaborative software projects.


== Git Tutorials and Resources ==
==External links==
=== Git tutorials and resources ===
* Git [http://git-scm.com/documentation documentation and tutorials]
* Git [http://git-scm.com/documentation documentation and tutorials]
* Git as a [http://tomayko.com/topics/git way of life].
* Git as a [http://tomayko.com/topics/git way of life].

Revision as of 15:35, 1 June 2010

In May 2010, after a hardware failure on the CVS servers, the FlightGear project changed version control system from CVS to Git. The Git repositories are located at Gitorious.

Due to the recent switch, we are currently doing our best on providing manuals for obtaining FlightGear through Git. The following articles are work in progress as of June 1st:

Quick start

To check out the maintenance branch of SimGear:

git clone git://gitorious.org/fg/simgear.git
cd simgear
git checkout -b maint origin/maint

Repeat that for FlightGear, with a slightly different command:

git clone git://gitorious.org/fg/flightgear.git
cd flightgear
git checkout -b maint origin/maint

The base package is available at http://gitorious.org/fg/fgdata, which we clone:

git clone git://gitorious.org/fg/fgdata

According to IRC chat:
If you receive errors linking against "OpenThreads" leave your local git copy branch to "next". Don't checkout branches "maint" for neither repository.

Motivation

Much has been written on the advantages of Git over CVS. For us, some advantages are:

  • Much better support for branches and merging branches. This is especially important for creating bug-fix releases for major releases while still allowing work on the next major release to continue. It is also very nice for a developer's personal workflow.
  • Easier path for contributors to submit changes and developers to integrate them;
  • Much better support for everyday tasks like searching the project history for changes, viewing changes, bisecting the project history to find the original source of a bug.

Also, the CVS servers had a hardware failure on May 2010, speeding up FlightGear's change to Git.

FlightGear and Git

For historical reasons there continue to be separate repositories for Simgear and Flightgear. There are 3 interesting branches in the repositories. Listed in order from least stable to most:

  • next The current tip of new development. This branch should always compile and run, but various things could be broken.
  • master The tip of stable, tested new features. If we were to make a new release today, we would start from the tip of this branch. New features that have been "cooking" in the next branch for a few days or weeks will be merged here.
  • maint Bug fixes for the most recently released Flightgear. When a release is made from master, this branch is reset to it.