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 julliard@winehq.org 1160750619 +0200 committer Alexandre Julliard julliard@winehq.org 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