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

Re: collapsing old git history to reduce repo size, while preserving commit #s and tags

From
Jakub Narębski <jnareb@gmail.com>
Date
Oct 30, 2013, 15:55 UTC
Message-ID
<52712BF2.2080409@gmail.com>
In-Reply-To
<CAJSXqrrMCWmRBoRNCLuD6DvU=CSk+MVGrSOCeOROROEaKouVKQ@mail.gmail.com>
On 2013-10-30 08:52, Stas Cherkassky wrote:
>
> Shallow clone (if that's what you meant) is not suitable because it
> doesn't allow to push/pull to/from this shallow repository.

Still? I think there were some work on making shallow clone to allowing push/pull to/from it.

Show 5 quoted lines
> I understand that generally git is designed to preserve the history.
> But the problem is real,  and probably is not unique to our project.
> The fact that there ARE some ways to modify history (collapse commits,
> rebase, filter-branch) made me hopeful that what I need is also
> possible..

By the very nature of git, namely that the 'parent' link to previous (as in: this is based on it) commit or commits, is SHA-1 of said commit, and SHA-1 identifier of commit is based on contents including 'parent' field.

Both rebase and filter-branch _rewrite_ history (i.e. make modified copy of history, and let you replace old history by new).

You could try to use father or shallow clone, namely *grafts*, to 'cauterize' history, but there remains same problems as with shallow clone, perhaps with exception that git won't check things for you.

-- 
Jakub Narębski
Previous: Stas CherkasskyNext: Duy Nguyen
Message 4 of 5 in “Re: collapsing old git history to reduce repo size, while preserving commit #s and tags”
  1. Stas CherkasskyOct 29, 2013
  2. Andrew ArdillOct 29, 2013
  3. Stas CherkasskyOct 30, 2013
  4. Jakub NarębskiOct 30, 2013
  5. Duy NguyenOct 30, 2013

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.