threads / discuss / 32588

Turning a complete repository to a shallow one

Subject: Turning a complete repository to a shallow one

## tl;dr

2 messages between Jan 11, 2013 and Jan 11, 2013.

replies: 1people: 2as markdown or json

Duy Nguyen· Jan 11, 2013, 04:40 UTC · lore
Apparently we could do it:

git clone --single-branch git.git cd git git tag -l|xargs git tag -d git fetch --depth=1 origin master git repack -ad

Now the repository becomes shallow and all of history is _lost_. It is a feature for those who wants to reduce disk usage, but it's also a gun to shoot at your feet. I'm tempted to ban this case. If I want to reduce disk usage, I should be forced to shallow clone it first, then remove the original repository. I still have a complete repository if I change my mind. And "rm -rf git" is alarming enough for me to think it twice before executing.

Comments?
-- 
Duy
Junio C Hamano· Jan 11, 2013, 04:53 UTC · re: Duy Nguyen · lore

Re: Turning a complete repository to a shallow one

Duy Nguyen <pclouds@gmail.com> writes:
Show 7 quoted lines
> Apparently we could do it:
>
> git clone --single-branch git.git
> cd git
> git tag -l|xargs git tag -d
> git fetch --depth=1 origin master
> git repack -ad

I may have been unclear in the earlier message, but this is one of the reasons why I think "fetch --depth" is misadvertised (it says "deepen the history", when the real thing it does is to truncate to the new depth counting from the updated tip), and misdesigned (it forces the user to guess what the new depth should be). It should be advertised correctly, as a way to reset its depth starting from the current history (and of course --depth=1 is truncates).

We should introduce a separate "fetch --deepen" that does what normal people would want (see my earlier message with ASCII art).

← back to recent threads