Thinning a repository

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Thinning a repository

From: Yuri D'Elia <hidden>
Date: 2016-06-15 23:03:08

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.

Re: Thinning a repository

From: Fredrik Gustafsson <hidden>
Date: 2016-06-15 23:03:08

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

Re: Thinning a repository

From: Yuri D'Elia <hidden>
Date: 2016-06-15 23:03:08

On 11/30/2014 01:34 PM, Fredrik Gustafsson wrote:
On Sun, Nov 30, 2014 at 01:18:34PM +0100, Yuri D'Elia wrote:
quoted
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help