Skip to content

haxed + Git

March 2, 2010

FYI, in the works is a Git backend to haxed. Why have a backing Sqlite database and unversioned binary zips when a DVCS like Git can provide the versioning implicitly on the source, and trivially create a zip archive for it?

haxed can now upload a standard haxed-up zip file, which is unzipped and committed in a new git repository. This process can be repeated, each new haxed submit, becoming a new commit.


Behind the scenes, how’s  versioning handled?

git log

provides commiter, date, and comment, for each commit, parse and return,

and downloading?

git archive –format=zip –output

to the appropriate download dir.

How is search implemented?

git grep

The implementation of the backend is trivial.

Further Advantages

So, for those who are using haxed, they can consume libraries as normal, but for the creator of the libraries there are further advantages if Git is their standard dvcs. For example, I need to to create a new version

git push repo

Having the git repository, as  the source of the haxed package management, integrates packaging seemlessly into the development process without thinking about it.

The repository will be much smaller than a standard haxelib repo, as Git is notoriously efficient with deltas, even binary.


Not finished, but submitting and installing are working.

I have to work out user management, which will start with a simple versioned text file as a database.

I still have to think how best to integrate commit ID’s and version numbers, for example, maybe only tagged commits should be available as a haxed download, in fact, that will be my strategy. This allows development on a branch to occur arbitrarily, but only tagged commits become stable downloads.

If you’d like to participate with ideas along these lines you’ll find the code on github , i think there’s a lot of scope for input with this and interesting ways to enhance development.



From → haxe

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: