# need help stripping a repo to one file

2 messages from 2008-10-19 to 2008-10-20. Participants: Caleb Cushing, Baz.
Thread: https://gitlist.dev/t/15966

## Caleb Cushing, 2008-10-19 10:27

Subject: need help stripping a repo to one file
Message-ID: <81bfc67a0810190327i7842d346g4c20f5816e8a9eda@mail.gmail.com>
URL: https://gitlist.dev/e/81bfc67a0810190327i7842d346g4c20f5816e8a9eda%40mail.gmail.com

```
here's what I've done so far (note: this is a public repo if anyone
wants to take a look)

git clone git@github.com:xenoterracide/dot_usr.git sql_iabbr
cd sql_iabbr/
git checkout db3c5ffb180f10dde8e539a81a6644760e098dcd
git branch -D master
git checkout -b master
git filter-branch --subdirectory-filter  vim/ftplugin/ -- --all


that leaves me with this
html  sgml  sh  tex  vim  xhtml  xml  sql_iabbr.vim  xml.vim

all I want left is sql_iabbr.vim and it's history

I've used stuff like
git filter-branch --tree-filter 'rm -rf xml.vim' HEAD

to remove the files... but I notice that leaves the logs.

I'm thinking I could do that and then remove those commits but I
haven't figured out how to remove the commits, and even then I'm not
sure the repo would be in the state I want.

can anyone help me get to where I want to be? also is there an easier
way to do what I've done so far?
-- 
Caleb Cushing

```

## Baz, 2008-10-20 11:53

Subject: Re: need help stripping a repo to one file
Message-ID: <2faad3050810200453o231d9702i6856657b925dd332@mail.gmail.com>
URL: https://gitlist.dev/e/2faad3050810200453o231d9702i6856657b925dd332%40mail.gmail.com
In-Reply-To: <81bfc67a0810190327i7842d346g4c20f5816e8a9eda@mail.gmail.com>

```
2008/10/19 Caleb Cushing <xenoterracide@gmail.com>:
> here's what I've done so far (note: this is a public repo if anyone
> wants to take a look)
>
> git clone git@github.com:xenoterracide/dot_usr.git sql_iabbr
> cd sql_iabbr/
> git checkout db3c5ffb180f10dde8e539a81a6644760e098dcd
> git branch -D master
> git checkout -b master
> git filter-branch --subdirectory-filter  vim/ftplugin/ -- --all
>
>
> that leaves me with this
> html  sgml  sh  tex  vim  xhtml  xml  sql_iabbr.vim  xml.vim
>
> all I want left is sql_iabbr.vim and it's history

So you just want the history for a single file?

 git log -p --reverse --pretty=email -- sql_iabbr.vim

That outputs a patch history for sql_iabbr.vim in mbox format, you can
import that into an empty repo with git-am.

(I had a look at the project, the history is simple with no merges
etc, so nothing like --first-parent is needed)

Cheers,
Baz

>
> I've used stuff like
> git filter-branch --tree-filter 'rm -rf xml.vim' HEAD
>
> to remove the files... but I notice that leaves the logs.
>
> I'm thinking I could do that and then remove those commits but I
> haven't figured out how to remove the commits, and even then I'm not
> sure the repo would be in the state I want.
>
> can anyone help me get to where I want to be? also is there an easier
> way to do what I've done so far?
> --
> Caleb Cushing
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

```
