Git is a version control system, used to store all files required to build FlightGear.
Git is a used by the FlightGear project to store all the files required to build and run the simulator. This includes all the programs, the data (e.g. textures, sounds), supporting tools, etc. Git tracks updates to every file as developers from around the world work together concurrently to create new versions. The sole exception is the official FGAddon aircraft repository that is Subversion rather than Git based.
While new FlightGear features and additions are in development, they are available from Git before they are available in the standard release version. Using Git allows users to use the newest possible version of FlightGear from the latest source files, to experiment with new aircraft or other features. However, it is not a beginner's tool. Using Git can expose the user to unstable features that show ugly error messages, or crash the computer.
As of May 2016, the repositories are located at SourceForge.
In May 2010, after a hardware failure on the CVS servers, the FlightGear project changed its version control system from CVS to Git.
Much has been written on the advantages of Git over CVS. For the FlightGear project, 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.
Repositories and branches
Next is C++17 since we branched 2020.3 off: so far this seems to be working well, we can use the fun stuff such as std::optional, and the nicer overloads of make_shared / make_unique. Since 2020.3 and before also used C++11, we have been using lambdas, direct member init and gradually replacing ‘typedef’ with ‘using’ for years now, but as an incremental process: for the time being, it doesn't seem like wholesale search and replace conversions are justified.
The FlightGear project is split up in the repositories listed below.
|simgear||SimGear, the simulation engine that FlightGear uses.||
Those repositories have the following branches:
As of August 2020, people not interested in actively contributing to C++ development are encouraged to use the release/2020.2 branch as the next branch may undergoing significant breakage in the near term future.
|fgdata||All data (default aircraft, dialogs, sounds) used by FlightGear.|
|fgmeta||FlightGear "meta" repository containing build and setup scripts for the whole project.|
|windows-3rd-party||Prebuilt libraries needed to make FlightGear run on Windows.|
|fgrun||The FGRun launcher for FlightGear.|
|fgaddon||FGAddon, an SVN repository that holds all official aircraft (except the Cessna 172P default plane and the UFO).|
|fgcom||FGCom, a voice-over-IP application used by multiplayer controllers to provide ATC services.|
|getstart||Sources for the Getting Started manual included with the simulator.|
|openradar||The OpenRadar application used by multiplayer controllers.|
|sceneryweb||Source code and configuration files for the Mapserver, the scenery portal and the TerraGear scenery build server.|
|terragear||The TerraGear scenery building toolkit.|
|terrafs||TerraFS, a Linux tool to mount the TerraSync scenery as a remote file system.|
|maclauncher||Old FlightGear launcher for Mac.||Deprecated by the Qt5 Launcher.|
|fgms||Multiplayer server system|
- FlightGear Git: splitting FGData, an initiative to split the aircraft out of the FGData repository, in order to decrease its size and thus improve access to the average user/developer.