[Mesa-dev] [Mesa3d-dev] Separate demos repository

Kristian Høgsberg krh at bitplanet.net
Thu May 20 12:45:00 PDT 2010


On Thu, May 20, 2010 at 3:18 PM, Eric Anholt <eric at anholt.net> wrote:
> On Wed, 28 Apr 2010 11:00:45 +0000, José Fonseca <jfonseca at vmware.com> wrote:
>> Ping.
>>
>> Could someone with administrative rights on fdo please make an empty
>> git://anongit.freedesktop.org/mesa/demos repos, so that we can push this
>> branch into it?
>>
>> Jose
>
> Sorry for the delay.  I wanted to get a few things done right when
> making the new repo:
>
> 1) Don't include all of the Mesa history to keep repo size down.
> 2) Keep history of the changes to the demos so annotate works.
> 3) Move the demos to src/ so people just coming to the project see a
>   normal-looking tree.
>
> This sure sounded easy with git-filter-branch.  We'd done something like
> this with git-split for xcb, and git-filter-branch looked basically like
> git-split but with more options.  The ugly part is that the tree-filter
> takes a very long time, but git mv (unlike git rm) requires a
> checked-out tree so you can't index-filter it.  Here's how the history
> I've pushed came about.  I started with:
>
> commit 1391db428fe7b8f3d1c078da98dc1a231b54347f
> Author: Wiktor Janas <wixorpeek at gmail.com>
> Date:   Tue May 4 19:50:26 2010 +0200
>
>    u_blitter: fix creating fragment shaders
>
>    See FDO bug #27887.
>
>    Signed-off-by: Marek Olšák <maraeo at gmail.com>
>
> And then:
>
> # Remove everything in src/
> git filter-branch --index-filter "git rm -rf --cached src" HEAD
> # Remove all the do-nothing commits that now exist
> git filter-branch --prune-empty HEAD
> # Remove the nouveau import commit that was now empty, and confused the next filter
> git filter-branch --parent-filter "sed 's|-p d57c2aff039d2a1422d0bc4d8e2b850c33d7e95c||'" HEAD
> # Now actually move progs/ to src/
> git filter-branch -f --index-filter \
>    'git ls-files -s | sed "s-\tprogs/-\tsrc/-" |
>         GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
>         git update-index --index-info &&
>         mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
>
> Yuck.
>
> Anyway, that resulting tree plus the changes I had in the other tree
> rebased on it is now pushed to:
>
> git+ssh://git.freedesktop.org/git/mesa/demos
>
> I think commit messages are hooked up, too.

Very nice... though, shoudn't we also drop the docs, doxygen, include
and configs subdirectories?

Kristian


More information about the mesa-dev mailing list