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

Using git for file archival/backup purposes - deletion strategy

From
Martin Langhoff <martin.langhoff@gmail.com>
Date
Dec 26, 2007, 22:43 UTC
Message-ID
<46a038f90712261443t6aa0cd76u46d8ae88fc7c1eba@mail.gmail.com>
Hi list!

I am drafting a tool to use GIT as a behind-the-scenes archival/backup tool for web applications. There's been countless threads covering generic file archival, discussing /etc and homedirs, so I am pretty comfortable with the mechanics and the whole idea. This is a fairly narrow use, where the web apps are reasonable well behaved -- most (all?) of the caveats in ~ and /etc archival seem to be under control.

What I am not 100% clear on is the "old history" deletion strategy. The history will be *strictly* linear, so my intention is to keep the last N commits, by overriding the parent of the Nth commit that git log lists with a "shallow" entry in $GIT_DIR/shallow as documented in Documentation/technical/shallow.txt , and call gc after that.

Is that the correct way to "forget" old history? Searching high and low in the list, I fail to find a definitive answer. Shallow and grafts entries are discussed as ways of doing this, but I can't find a "correct" way of doing this.

BTW I've just done a git clone --depth 10 ~/src/git and while I do get a clearly "shallow" checkout, with a tiny .git/objects directory, I can't find any file called shallow, or grafts. .git/config doesn't say anything either, and alternates is empty. I frankly cannot tell how git recognizes it as a shallow repo.

Ah! Local clones won't honour --depth!. A clone from git.kernel.org does get its .git/shallow file.

So the question is: is it safe (and enough) to add the SHA1 to the .git/shallow file and call git gc? Is there a better way?

cheers,
m
Next: Johannes Sixt
Message 1 of 4 in “Using git for file archival/backup purposes - deletion strategy”
  1. Martin LanghoffDec 26, 2007
  2. Johannes SixtDec 27, 2007
  3. Charles BaileyDec 27, 2007
  4. Martin LanghoffDec 27, 2007

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.