Thread (19 messages) flat view 19 messages, 7 authors, 2016-06-15

Re: Why repository grows after "git gc"? / Purpose of *.keep files?

From: Nicolas Pitre <hidden>
Date: 2016-06-15 22:44:36

On Mon, 12 May 2008, Teemu Likonen wrote:
Nicolas Pitre wrote (2008-05-12 14:56 -0400):
quoted
On Mon, 12 May 2008, Teemu Likonen wrote:
quoted
Well, I don't really have any problems with the current behaviour;
it just feels a bit strange that, for example, Linus's kernel
repository grew about 90MB after just one update pull and gc.
That looks really odd.  Sure the repo might grow a bit, but 90MB seems
really excessive.  How many time did pass between the initial clone
and that subsequent pull?
As I used the kernel repo just for testing this behaviour in question
I did both things today. Timestamps tell that there were six hours
between the initial .keep pack and the new pack created by manual "git
gc".
This is way too big a difference.  Something is going on.

What git version is this? And can you send me the content of your 
.git/logs directory?
quoted
quoted
Also, dangling objects are kept forever in .keep packs (which are
created with "git clone", for example).
A pack obtained via 'git clone' will never contain any dangling
objects.
I think it can contain at some later point. For example, if a user first
fetches all the branches but later decides to track only one branch.
After deleting unneeded tracking branches and expiring the reflog
there'll be dangling objects in the original .keep pack created with
"git clone".
Sure.  But to decide to track only one branch and exclude the others 
require some higher level of git knowledge already.  At that point if 
you really care about top packing performances you certainly can deal 
with the .keep file as well.


Nicolas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help