Matthew Kehrer wrote:

Is there a way I can convert a source tarball I download to a local GIT repository?

Actually, I gave this some thought.   It's possible, but complicated.

You can create your own git tree as follows:

tar jxvf wine-0.9.23.tar.bz2 | sed s/^wine-0.9.23\\/// > list
cd wine-0.9.23
git init-db
git update-index --add `cat ../list`
git commit -m "Import of wine-0.9.23"

This should result in the message (the SHA-1 ID should match!):

Committing initial tree c8369ac44e507d96073ca57e9a0a1e77f5ec9511

This will give you a git tree with no history. The problem is then to keep it updated. Searching for that tree id in the Wine Git tree shows:

 git rev-list --header HEAD | less

...

7affdd4c7cadc3aa90c3e1e053321f4712a6f07d
tree c8369ac44e507d96073ca57e9a0a1e77f5ec9511
parent a348e0936af6de2650b424d3e90ed81b5c10e9ca
author Alexandre Julliard <[EMAIL PROTECTED]> 1160750619 +0200
committer Alexandre Julliard <[EMAIL PROTECTED]> 1160750619 +0200

    Release 0.9.23.

So we can make the SHA1 ID of the *tree* line up, thus we have the same tree. Given the same tree, we can find a commit ID we should be able to generate a Git patch mailbox that updates your Git tree inline with the latest Wine Git, without needing the entire history.

So the initial download would be about 10Mb for the wine source tarball, then a bunch of patches in git mailbox format for each update.

I'll see if I can setup some scripts to do this more automatically.

Mike


Reply via email to