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

Eric Anholt eric at anholt.net
Thu May 20 12:18:57 PDT 2010


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20100520/dd2f60fa/attachment.pgp>


More information about the mesa-dev mailing list