git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git filter-branch should run git gc --auto

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 23, 2008, 02:46 UTC
Message-ID
<7v1w89qmw3.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<BE604744-0D26-4A39-85CE-B5C0C8C00F9E@sb.org>
Kevin Ballard <kevin@sb.org> writes:
Show 15 quoted lines
> I just glanced at git-filter-branch.sh (and I must say I was
> incredibly surprised to find out it was a shell script) and it seems
> it never runs git-gc or git-repack. Doesn't that end up with the same
> problems as git-svn sans git-repack when filtering a large number of
> commits? I was just thinking, if I were to git-filter-branch on my
> massive repo (in fact, the same repo that started this thread, with
> over 33000 commits in the upstream svn repo), even if I just do
> something as simple as change the commit msg wont I end up with
> thousands of unreachable objects? I shudder to think how many
> unreachable objects I would have if I pruned the entire dports
> directory off of the tree.
>
> Am I missing something, or does git-filter-branch really not do any
> garbage collection? I tried reading the source, but complex bash
> scripts are almost as bad as perl in terms of readability.

Theoretically yes, and it largely depends on what you do, but filter-branch goes over the objects that already exists in your repository, and hopefully you won't be rewriting majority of them.

So the impact of not repacking is probably much less painful in practice.

But again as I said, it largely depends on what you do in your filter. If you are upcasing (or convert to NFD ;-)) the contents of all of your blob objects, you would certainly want to repack every once in a while.

Previous: Kevin BallardNext: Junio C Hamano
Message 16 of 27 in “git-svn should default to --repack”
  1. Kevin BallardJan 18, 2008
  2. Karl HasselströmJan 18, 2008
  3. Junio C HamanoJan 18, 2008
  4. Karl HasselströmJan 19, 2008
  5. Kevin BallardJan 19, 2008
  6. Let "git svn" run "git gc --auto" occasionallyKarl Hasselström, Jan 19, 2008
  7. Harvey HarrisonJan 19, 2008
  8. Eric WongJan 20, 2008
  9. Karl HasselströmJan 20, 2008
  10. Junio C HamanoJan 20, 2008
  11. Eric WongJan 21, 2008
  12. Junio C HamanoJan 22, 2008
  13. Eric WongJan 22, 2008
  14. Junio C HamanoJan 22, 2008
  15. git filter-branch should run git gc --autoKevin Ballard, Jan 23, 2008
  16. Junio C HamanoJan 23, 2008
  17. Junio C HamanoJan 23, 2008
  18. Kevin BallardJan 23, 2008
  19. Harvey HarrisonJan 23, 2008
  20. Kevin BallardJan 23, 2008
  21. Sam VilainJan 23, 2008
  22. Kevin BallardJan 23, 2008
  23. Mike HommeyJan 23, 2008
  24. Johannes SchindelinJan 23, 2008
  25. Junio C HamanoJan 23, 2008
  26. 1/2 git-svn: Don't call git-repack anymoreKarl Hasselström, Jan 20, 2008
  27. 2/2 Let "git svn" run "git gc --auto" occasionallyKarl Hasselström, Jan 20, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.