Subject: Re: Splitting off old history to ancillary repo

From: Michael J Gruber <[email-masked]>
Date: Thu, 28 Aug 2008 18:57:57 +0200

Martin Langhoff venit, vidit, dixit 28.08.2008 04:40:
> 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