# git repack with a --reference

3 messages from 2009-05-07 to 2009-05-07. Participants: Jonathan Harker, Miles Bader, Brandon Casey.
Thread: https://gitlist.dev/t/19217

## Jonathan Harker, 2009-05-07 04:21

Subject: git repack with a --reference
Message-ID: <4A0261D8.8040105@catalyst.net.nz>
URL: https://gitlist.dev/e/4A0261D8.8040105%40catalyst.net.nz

```
Hi - hope this isn't too noobish but I'm trying to get an existing git
checkout to repack/prune/gc itself such that it would be like I had
cloned it with --reference /path/to/local/repo (i.e. I've added
/path/to/local/repo to .git/objects/info/alternatives, and I'd like it
to reduce its objects from 200 MB to 5 MB). Is this

a. possible,

b. desirable, and

c. not insane?

Cheers,
Jonathan Harker
http://catalyst.net.nz/

```

## Miles Bader, 2009-05-07 05:57

Subject: Re: git repack with a --reference
Message-ID: <87bpq5bgle.fsf@catnip.gol.com>
URL: https://gitlist.dev/e/87bpq5bgle.fsf%40catnip.gol.com
In-Reply-To: <4A0261D8.8040105@catalyst.net.nz>

```
Jonathan Harker <jonathan@catalyst.net.nz> writes:
> Hi - hope this isn't too noobish but I'm trying to get an existing git
> checkout to repack/prune/gc itself such that it would be like I had
> cloned it with --reference /path/to/local/repo (i.e. I've added
> /path/to/local/repo to .git/objects/info/alternatives, and I'd like it
> to reduce its objects from 200 MB to 5 MB). Is this
>
> a. possible,
> b. desirable, and
> c. not insane?

I've done this in the past (using "git gc", but same difference I
guess), and it worked as you'd hope, reducing .git to something very
small.

I don't recall any real problems, but you might need to manually
remove any pack ".keep" files first though (I seem to recall something
like that, anyway).

-Miles

-- 
Friendship, n. A ship big enough to carry two in fair weather, but only one
in foul.

```

## Brandon Casey, 2009-05-07 17:14

Subject: Re: git repack with a --reference
Message-ID: <y6_KSeeksmCZ_XvwgBeZd4SDdo0CcdL0TgPJ6Py336qsFto6evR0vA@cipher.nrlssc.navy.mil>
URL: https://gitlist.dev/e/y6_KSeeksmCZ_XvwgBeZd4SDdo0CcdL0TgPJ6Py336qsFto6evR0vA%40cipher.nrlssc.navy.mil
In-Reply-To: <4A0261D8.8040105@catalyst.net.nz>

```
Jonathan Harker wrote:
> Hi - hope this isn't too noobish but I'm trying to get an existing git
> checkout to repack/prune/gc itself such that it would be like I had
> cloned it with --reference /path/to/local/repo (i.e. I've added
> /path/to/local/repo to .git/objects/info/alternatives, and I'd like it
> to reduce its objects from 200 MB to 5 MB). Is this
> 
> a. possible,
> 
> b. desirable, and
> 
> c. not insane?

yes,yes,yes.

The path written to .git/objects/info/alternates (also notice spelling of
"alternates") should be the path to the objects directory, not to the
toplevel repository.

i.e.

   /path/to/local/repo.git/objects

It should work properly since git v1.6.2.3.

-brandon

```
