Talk:FlightGear Git: splitting FGData

From FlightGear wiki
Jump to navigation Jump to search

Moved some text that was clearly part of a plan that is currently not very likely to be continued into the discussion page:

Starting new aircraft

New aircraft should not be commited to fgdata. A separate repository should be created instead. Contact a FlightGear Aircraft admin to get your repository included in the FlightGear Aircraft project. You, as author, will get commit rights for that repository.

The current fgdata developers will have access to every single aircraft repository. In order to maintain aircraft that no longer have an active author, fix global bugs etc. Other users can create merge requests to get their fixes/improvements commited.

Step 1: Split aircraft into separate repositories (DONE)

Aircraft are split into "private" repositories, under the FlightGear Aircraft project. Repositories for all aircraft in current fgdata have been created as of 17 October. Repository names equal directory-names (with the exceptions of dots (.) and capitals (ABC), as those are not supported by Gitorious.

There are two workflows that both do the trick:

Method 1

Note: the split branch (737-300-split in this example) must NOT exist beforehand.

cd $FG_ROOT 
git subtree split -P Aircraft/737-300 -b 737-300-split
mkdir -p ../split-aircraft/737-300
cd ../split-aircraft/737-300
git init
git fetch $FG_ROOT 737-300-split
git checkout -b master FETCH_HEAD
git push master

Method 2

(need to check this one)

cd fgdata
git clone --no-hardlinks /fgdata /737-300
git filter-branch --subdirectory-filter Aircraft/737-300 HEAD -- --all
git reset --hard
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --aggressive --prune=now

Then all aircraft should be pushed to their new repositories. A script will take care of that.

Step 2: Remove all aircraft from fgdata

A new fgdata repository without any aircraft is created, pushed to gitorious and tested.

Step 3: Write/update manuals

Since the aircraft development flow will be different, we should teach our developers how to use the new system.

To be written:

To be updated:

Step 4: Switch fgdata

Once tests show that the new repository is working fine and no data has been lost, the repositories will be switched. The exisiting repository is renamed, and the new repository takes its place and access to the new repository is setup. The historic fgdata is kept but stays frozen, at least until we're sure everything is safe. It may also be a good idea to keep the existing repo, since it contains release branches - which are not part of the new repository and would be lost otherwise.

Step 5: Inform the crowd

Post an announcement at the mailing list, forum, Facebook (?) and in the upcoming newsletter edition. Link to the respective wiki articles (see Step 3) that contain details on how to work with the new system.


  • What to do with Aircraft/UIUC should it be placed like "one" aircraft in a aircraft-repository? Or each individual?
    • An flightgear-aircraft/UIUC repo has been created, we can delete it if needed later on.
  • Gitorious does not support dots in repository names.
    • For now we just skipped dots, so Supermarine-S.6B has a repo called supermarine-s6b (note that Gitorious also does not distinct capitals. This does not seem to be a problem though, since git clone uses the original directory name).
  • What rights should aircraft authors get?
    • Commit/review might be best. If they are granted admin rights, they can delete the repo and remove the fgdata-developers as collaborators. When they do the later, there's no way we can regain control over the repo. We won't even be able to delete it from the FlightGear Aircraft project.
  • Should we support multiple licenses under the FlightGear Aircraft project?
    • Possible, but then the Aircraft Downloadpage would maybe need an update. Better create one Place for GNU-GPL and one for other licences.
  • How long should we test? FGData is increasing again as new aircraft are continuously added again.

--Durk 17:48, 16 November 2011 (EST)

Keeping the page though it is soon outdated

As the split has begun and the aircraft have copied the aircraft to SourceForge (see FlightGear Newsletter September 2014#Aircraft moved to SVN), this page could soon be considered obsolete.

As the split has been discussed for some time and is a bit of a watershed I feel that it could be a good idea to maybe add links to relevant developer mailing list treads and forum topics and keep this page for historical reference.

I have added a messagebox template, {{historical}}, for this and similar purposes (here filled in for this page):

This article talk page is outdated but is kept for historical reference.

This split had been discussed for years and finally begun in September 2014. See FlightGear Newsletter September 2014#Aircraft moved to SVN.
See also the discussion page.

Johan G (Talk | contribs) 11:01, 27 December 2014 (UTC)

I am putting this awesome messagebox at the top of the article to avoid confusion! Bugman (talk) 16:40, 22 September 2015 (EDT)