FlightGear Git: Difference between revisions

Jump to navigation Jump to search
updated and removed cvs mentions
mNo edit summary
(updated and removed cvs mentions)
Line 1: Line 1:
The [[Flightgear]] project has been experimenting with the [http://git-scm.com Git] distributed version control system as a replacement for [[CVS]].
The [[FlightGear]] project has changed its distributed version control system from CVS to [http://git-scm.com Git] due to a hardware failure on the CVS servers (see the "Motivation" section).


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
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


Mac OS 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.
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.


== Git Flightgear Quickstart ==
==Quick Start==
The Git repositories are at http://gitorious.org/sg and http://gitorious.org/fg.  
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]]:


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


Repeat for Flightgear:
Repeat for [[FlightGear]]:


  git clone git://gitorious.org/fg/flightgear.git
  git clone git://gitorious.org/fg/flightgear.git
Line 29: Line 29:
* 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.


== Flightgear and Git ==
Also, the CVS servers had a hardware failure on May 2010, leading to FlightGear's change from CVS to Git.
The repositories at <tt>repo.or.cz</tt> are experimental, but when we do switch to Git the real repositories will be set up similarly. 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:
 
== 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:
* <tt>next</tt> The current tip of new development. This branch should always compile and run, but various things could be broken.
* <tt>next</tt> The current tip of new development. This branch should always compile and run, but various things could be broken.
* <tt>master</tt> 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 <tt>next</tt> branch for a few days or weeks will be merged here.
* <tt>master</tt> 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 <tt>next</tt> branch for a few days or weeks will be merged here.
* <tt>maint</tt> Bug fixes for the most recently released Flightgear. When a release is made from <tt>master</tt>, this branch is reset to it.
* <tt>maint</tt> Bug fixes for the most recently released Flightgear. When a release is made from <tt>master</tt>, this branch is reset to it.
* <tt>cvs</tt> While we are still using CVS, this branch tracks the HEAD of the Simgear and Flightgear CVS repositories. It is '''not''' a real-time mirror of CVS, but reflects the state of the CVS repositories at the time that <tt>maint</tt> and <tt>next</tt> were last updated.


For now, almost every commit in <tt>next</tt>, <tt>master</tt> and <tt>maint</tt> are identical to commits in the CVS repositories, and the contents of <tt>next</tt> should be identical to those of CVS HEAD. You can verify this:
<!--For now, almost every commit in <tt>next</tt>, <tt>master</tt> and <tt>maint</tt> are identical to commits in the CVS repositories, and the contents of <tt>next</tt> should be identical to those of CVS HEAD. You can verify this:


  git diff origin/cvs..origin/next
  git diff origin/cvs..origin/next
Line 42: Line 43:
should return nothing. The only commits that don't exist in CVS are those that set the version numbers of the maintenance releases because the maintenance releases don't exist as such in CVS.
should return nothing. The only commits that don't exist in CVS are those that set the version numbers of the maintenance releases because the maintenance releases don't exist as such in CVS.


Even though the contents of <tt>next</tt> are the same as CVS HEAD, its history is different. It includes many merges from <tt>maint</tt> and branches based on <tt>maint</tt>. This makes it easier to move new work from <tt>next</tt> back to <tt>master</tt> and <tt>maint</tt> after it has had time to cook.
Even though the contents of <tt>next</tt> are the same as CVS HEAD, its history is different. It includes many merges from <tt>maint</tt> and branches based on <tt>maint</tt>. This makes it easier to move new work from <tt>next</tt> back to <tt>master</tt> and <tt>maint</tt> after it has had time to cook. --!>


This arrangement follows the scheme used by the Git maintainers.
This arrangement follows the scheme used by the Git maintainers.
173

edits

Navigation menu