threads / discuss / 15239

Splitting off old history to ancillary repo

Subject: Splitting off old history to ancillary repo

## tl;dr

2 messages between Aug 28, 2008 and Aug 28, 2008.

replies: 1people: 2as markdown or json

Martin Langhoff· Aug 28, 2008, 02:40 UTC · lore

A project I've inherited has a codebase ~500KB in size. However, in early history some large binary blobs were committed to the repo. We've gotten rid of those, and they are not interesting to current development. But an initial checkout still has to retrieve 60MiB, when I'm sure the recent (and interesting) history fits in less than 1MB.

What is the state of grafts from a "keeping the repo mostly transparently usable for newcomers" POV? Is there a new mechanims I should look at?

Do we have a documented "here's how you split your repo with minimal downsides to end users"? If you give me enough hints I could write it :-)

The repo in question is http://dev.laptop.org/git?p=projects/xs-config;a=summary
cheers,
m
-- 
 martin.langhoff@gmail.com
 martin@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
Michael J Gruber· Aug 28, 2008, 16:57 UTC · re: Martin Langhoff · lore

Re: Splitting off old history to ancillary repo

Martin Langhoff venit, vidit, dixit 28.08.2008 04:40:
Show 9 quoted lines
> A project I've inherited has a codebase ~500KB in size. However, in
> early history some large binary blobs were committed to the repo.
> We've gotten rid of those, and they are not interesting to current
> development. But an initial checkout still has to retrieve 60MiB, when
> I'm sure the recent (and interesting) history fits in less than 1MB.
> 
> What is the state of grafts from a "keeping the repo mostly
> transparently usable for newcomers" POV? Is there a new mechanims I
> should look at?
Do you mean newcomers who have never cloned your repo before?

I see two ways, both involving history rewriting (and therefore problems for people who cloned already):

- remove those files using filter-branch
This keeps the whole history in one repo but can produce empty commits
(which touched only the removed files).
- split the history using grafts and use filter-branch to make the split
for good
This gives you a split history which you can now put in different repos.
People interested in the full history can pull both and connect the
history using grafts.
I've used both (depending on the use case), both work well.
Michael

← back to recent threads