git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Splitting off old history to ancillary repo

From
Michael J Gruber <michaeljgruber+gmane@fastmail.fm>
Date
Aug 28, 2008, 16:57 UTC
Message-ID
<48B6D915.8080706@fastmail.fm>
In-Reply-To
<46a038f90808271940w3aaf5c4ek6329e8066724c778@mail.gmail.com>
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
Previous: Martin Langhoff
Message 2 of 2 in “Splitting off old history to ancillary repo”
  1. Martin LanghoffAug 28, 2008
  2. Michael J GruberAug 28, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.