threads / bug / 17808

Possible git bug when using filter-branch to remove large binaries

Subject: Possible git bug when using filter-branch to remove large binaries

## tl;dr

2 messages between Feb 15, 2009 and Feb 15, 2009.

replies: 1people: 2as markdown or json

Juan Zanos· Feb 15, 2009, 21:35 UTC · lore
Hi Vger,

I'm trying to remove a directory of large binaries from a git repository There is a directory of 85M in a git repository of 92M. So the binaries are relatively massive and should never have been checked in in the first place. I've tried to use filter-branch to permanently remove those binaries. The directory successfully vanishes. However, the repository + working directory only goes from 216M down to 133M. That means the binaries were only removed from the working directory. The repository remains bloated. I've tried a handful of magic incantations using commands such as gc, prune, reflog expire --all, etc.. None of these have worked. In fact, after cloning the 133M (repo + working) and running gc the directory actually increased in size from 133M to 290M!

I'm not really sure I understand what's going on here. It sounds like the growth to 290M is a bug. If so I'm happy to provide the repo as a test case as well as the exact commands I use. On the other hand, I'm finding that the git API is complex enough that I could easily be doing something wrong or missing some command. In that case is there a simple set of commands I could use to remove a directory of really large binaries that never should have been checked in in the first place and reclaim the space ? I've checked pretty thoroughly on Google to find people who have successfully done this, but it seems mostly people have failed to actually reclaim space.

Cheers, Juan

Thomas Rast· Feb 15, 2009, 21:55 UTC · re: Juan Zanos · lore

Re: Possible git bug when using filter-branch to remove large binaries

Juan Zanos wrote:
> I'm trying to remove a directory of large binaries from a git  
> repository
[...]
> The directory successfully  
> vanishes. However, the repository + working directory only goes from  
> 216M down to 133M.   That means the binaries were only removed from  
> the working directory.

We're in fact trying to make a generic recipe and put it in 'man git-filter-branch'. The preliminary patch is here:

  http://article.gmane.org/gmane.comp.version-control.git/109925/

Once you convince your eyes to ignore the leading +, it should be fairly easy to read in patch form. ;-)

It would be very helpful if you could try the recipe, and report if it worked.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch

← back to recent threads