[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

storing game data with git-annex



The Debian games team uses git for their packages, but often there
is large game data, for which git is not well suited, so only the debian/
directory is version controlled with git. Other packages without large
data have the full source version controlled in their debian
repositories. Others version control most files, but leave out a few 
large files.

I wanted to point out a way to resolve this inconsistency. git-annex
allows large files to be version controlled with git, without actually
bloating the git repository with their content and making git unhappy.
Instead it is stored in a side directory of the git repository, and
can be transferred around between repositories.

For example, it could be used like this, to add data files:

cd openarena-data
git annex add --backend=SHA512E mp-pak0 pak0
git commit -m 'annexed data files'
git push
git annex copy --to origin

(The last command won't work until git-annex is installed on alioth. I
will be working to make that happen soon.)

Then for others to check it out:

debcheckout openarena-data
cd openarena-data
git annex get

(Note that until version 3.20110816, this would not work unless the repo
was cloned via ssh. As of today it will also work with http:// urls.
But I doubt git-annex will ever be able to support getting files from
repositories using git:// urls.)

Then to change some data files, something like this:

cd openarena-data
git annex unlock pak0
mv ~/new-pak0/* pak0/
git annex add pak0
git commit -m 'updated data files to feature beautiful pink ponies'
git push
git annex copy --to origin

And of course, someone else can then `git revert` that commit -- 
the data files are in proper version control..

-- 
see shy jo

Attachment: signature.asc
Description: Digital signature


Reply to: