Hi,

Currently I do not even have a working fg on my machine, but I continue
to peek at the flightgear-devel list occasionally. Today I saw this
discussion of moving the aircraft directories to individual SVN repos
instead of git.

My experience with both svn and git is both minimal and old, and I
may be misinterpreting what the problem is that needs solving.
However, if you're going to consider creating separate repos in SVN
for each aircraft, when everything else has been converted to git now,
perhaps you should consider instead using "fossil", which is very
git-like in some ways (clone,push,pull) but also like a traditional
centralized VCS in some other ways.

In particular, fossil's repository is a single, sqlite file.
Although cloning is the normal method for copying it, you can
copy that file just fine (as long as no one else is updating it
at that instant) and it works fine. Afterwards, updating a local repo,
using pull, involves an rsync-like protocol so it's fast.

Fossil repositories can be converted to/from git repositories
with a one-liner. (However I don't know how you would isolate,
say, just the c172p directory from all the rest of the stuff
in git.)

If anyone thinks this might be relevant, just take a look at

https://www.fossil-scm.org/index.html/doc/trunk/www/index.wiki

This is a living instance of a fossil repository, BTW: the
fossil binary, statically-linked except for libz, is ~900KB.
Yet it includes a simple wiki, a *very* nice issue-tracking
system, and a tiny web-server(!).

Normally a developer interacts with fossil from the commandline,
but the built-in web-server makes *exploring* what is in the
repository, as well as creating bug reports and some documentation,
a joy.

Just for fun, and understanding that this would have to be
done properly by someone with access to the full git repo with
all its history, I yum-installed FlightGear-data on my Fedora
system, and then did
        cp -r /usr/share/FlightGear/Aircraft /tmp

and created Fossil repos for each of the included directories:

shrdlu tmp $ ls Aircraft
777-200  bo105      dhc2       Generic         j3cub         ufo
A6M2     c172p      Dragonfly  Instruments     SenecaII      UIUC
b1900d   CitationX  f-14b      Instruments-3d  sopwithCamel  ZLT-NT
shrdlu tmp $ mkdir Repos
shrdlu tmp $ cd Aircraft
shrdlu Aircraft $ for i in *
> do
> echo "$i:"
> fossil new ../Repos/$i.fossil
> cd $i
> fossil open ../../Repos/$i.fossil
> fossil add .
> fossil commit -m "Initial checkin"
> fossil close
> cd ..
> done

#Five times it paused to ask a question like this:
#  ./Models/Liveries/KLM.xml contains CR/NL line endings; commit anyhow 
(yes/no/all)?all
#Otherwise it would have taken perhaps 30 seconds for all 18 repositories,
#on my 5-year-old machine.

shrdlu Aircraft $ cd ..
shrdlu tmp $ du -sh Aircraft
12M     Aircraft/777-200
4.5M    Aircraft/A6M2
6.0M    Aircraft/b1900d
3.0M    Aircraft/bo105
17M     Aircraft/c172p
5.8M    Aircraft/CitationX
5.9M    Aircraft/dhc2
1.6M    Aircraft/Dragonfly
23M     Aircraft/f-14b
816K    Aircraft/Generic
14M     Aircraft/Instruments
11M     Aircraft/Instruments-3d
1.1M    Aircraft/j3cub
6.6M    Aircraft/SenecaII
22M     Aircraft/sopwithCamel
216K    Aircraft/ufo
8.2M    Aircraft/UIUC
4.1M    Aircraft/ZLT-NT
shrdlu tmp $ ls -lh Repos
total 68M
-rw-r--r-- 1 dns dns 7.5M Jun 25 13:43 777-200.fossil
-rw-r--r-- 1 dns dns 1.6M Jun 25 13:43 A6M2.fossil
-rw-r--r-- 1 dns dns 3.3M Jun 25 13:43 b1900d.fossil
-rw-r--r-- 1 dns dns 1.4M Jun 25 13:43 bo105.fossil
-rw-r--r-- 1 dns dns  11M Jun 25 13:43 c172p.fossil
-rw-r--r-- 1 dns dns 3.4M Jun 25 13:43 CitationX.fossil
-rw-r--r-- 1 dns dns 3.2M Jun 25 13:43 dhc2.fossil
-rw-r--r-- 1 dns dns 836K Jun 25 13:43 Dragonfly.fossil
-rw-r--r-- 1 dns dns  11M Jun 25 13:44 f-14b.fossil
-rw-r--r-- 1 dns dns 464K Jun 25 13:44 Generic.fossil
-rw-r--r-- 1 dns dns 3.9M Jun 25 13:44 Instruments-3d.fossil
-rw-r--r-- 1 dns dns 5.4M Jun 25 13:44 Instruments.fossil
-rw-r--r-- 1 dns dns 457K Jun 25 13:44 j3cub.fossil
-rw-r--r-- 1 dns dns 2.4M Jun 25 13:44 SenecaII.fossil
-rw-r--r-- 1 dns dns 8.7M Jun 25 13:44 sopwithCamel.fossil
-rw-r--r-- 1 dns dns  96K Jun 25 13:44 ufo.fossil
-rw-r--r-- 1 dns dns 2.8M Jun 25 13:44 UIUC.fossil
-rw-r--r-- 1 dns dns 1.4M Jun 25 13:44 ZLT-NT.fossil
shrdlu tmp $ file Repos/777-200.fossil
Repos/777-200.fossil: SQLite 3.x database
shrdlu tmp $ du -sh Aircraft Repos
144M    Aircraft
68M     Repos
shrdlu tmp $

Of course this is equivalent to just the "tip" of the git repository.
Fossil uses deltas for versions internally, so it ought to be
"competitive" on the full history, but only an experiment will prove that.

Perhaps this is of some interest. If not, just ignore me.

david.

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a 
definitive record of customers, application performance, security 
threats, fraudulent activity and more. Splunk takes this data and makes 
sense of it. Business sense. IT sense. Common sense.. 
http://p.sf.net/sfu/splunk-d2d-c1
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to