# Optimizing repository speed

2 messages from 2007-02-19 to 2007-02-19. Participants: Bill Lear, Theodore Tso.
Thread: https://gitlist.dev/t/6880

## Bill Lear, 2007-02-19 14:37

Subject: Optimizing repository speed
Message-ID: <17881.46642.843674.49482@lisa.zopyra.com>
URL: https://gitlist.dev/e/17881.46642.843674.49482%40lisa.zopyra.com

```
As part of our conversion to git 1.5, I would like to ensure that
our code repository does not get crufty and slow.  Currently, I have
a cron job that runs each morning that does a 'git repack -a -d'.

I know there is 'git-gc', and it appears to do all sorts of good
things.  Can I simply replace my call to 'git repack -d -a' with 'git
gc', or is there anything else I might want to do?


Bill

```

## Theodore Tso, 2007-02-19 15:14

Subject: Re: Optimizing repository speed
Message-ID: <20070219151410.GG25490@thunk.org>
URL: https://gitlist.dev/e/20070219151410.GG25490%40thunk.org
In-Reply-To: <17881.46642.843674.49482@lisa.zopyra.com>

```
On Mon, Feb 19, 2007 at 08:37:38AM -0600, Bill Lear wrote:
> As part of our conversion to git 1.5, I would like to ensure that
> our code repository does not get crufty and slow.  Currently, I have
> a cron job that runs each morning that does a 'git repack -a -d'.
> 
> I know there is 'git-gc', and it appears to do all sorts of good
> things.  Can I simply replace my call to 'git repack -d -a' with 'git
> gc', or is there anything else I might want to do?

git-gc is a strict superset of git repack -a -d.  Specifically, what
it does is:

git-pack-refs --prune
git-reflog expire --al 
git-repack -a -d -l
git-rerere gc

It will also through in a git-prune if you do add --prune to the
git-gc call, but you really don't want to run that out of a cron job.

Regards,

						- Ted

```
