threads / discuss / 38077

Thinning a repository

Subject: Thinning a repository

## tl;dr

3 messages between Nov 30, 2014 and Nov 30, 2014.

replies: 2people: 2as markdown or json

Yuri D'Elia· Nov 30, 2014, 12:18 UTC · lore
Hi everyone,

Is there a quick way to reproduce the effect of a shallow clone on a local repository that doesn't involve filter-branch and/or re-clone?

My motivation is to reduce the local size of repositories I'm only following, by trimming the history without prejudice to a [N] set of last commits. It feels stupid that the quickest way I'm aware of right now to achieve this is to "git clone --depth N ..." again. filter-branch is ridiculously slow, as it iterates through history.

I've tried using graft points, but the combination of:

echo [sha] > .git/info/grafts git reflog expire --expire=0 --all git repack -Ad

doesn't really save any space and/or reduce the object count as I would expect. It means there's probably still reachable?

I'd really love to have a 'git thin [depth]' subcommand to perform the above however. I don't really want to have to iterate through refs just to check if they are still reachable within [n] commits just to delete them.

Thanks for any pointer.
Fredrik Gustafsson· Nov 30, 2014, 12:34 UTC · re: Yuri D'Elia · lore

Re: Thinning a repository

On Sun, Nov 30, 2014 at 01:18:34PM +0100, Yuri D'Elia wrote:
> Is there a quick way to reproduce the effect of a shallow clone on a
> local repository that doesn't involve filter-branch and/or re-clone?

I'm curious, why is it a bad thing to do a re-clone? If you clone your local repo it would be really fast.

-- 
Med vänlig hälsning
Fredrik Gustafsson

tel: 0733-608274
e-post: iveqy@iveqy.com
Yuri D'Elia· Nov 30, 2014, 12:35 UTC · re: Fredrik Gustafsson · lore

Re: Thinning a repository

On 11/30/2014 01:34 PM, Fredrik Gustafsson wrote:
Show 6 quoted lines
> On Sun, Nov 30, 2014 at 01:18:34PM +0100, Yuri D'Elia wrote:
>> Is there a quick way to reproduce the effect of a shallow clone on a
>> local repository that doesn't involve filter-branch and/or re-clone?
> 
> I'm curious, why is it a bad thing to do a re-clone? If you clone your
> local repo it would be really fast.

I see no reason to involve the workspace. I would also want to keep the current remote/origin as it is.

I expect a 'thin' command to be faster by not touching the workspace at all.

← back to recent threads