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

Re: Configuring git to for forget removed files

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Feb 21, 2010, 02:47 UTC
Message-ID
<20100221024746.GA9628@progeny.tock>
In-Reply-To
<4B7FBB73.70004@gmail.com>
Hi Andy,
Andrew Benton wrote:
> I have a project that I store in a git repository. It's a bunch of
> source tarballs and some bash scripts to compile it all. Git makes
> it easy to distribute any changes I make across the computers I run.
This is not really what git is intended to do.
 - git generally works better with files that are easy to diff; see
   the “filter” attribute in gitattributes(5) for one way this is
   sometimes achieved with meaningful binary files (e.g., the
   compressed files OpenOffice produces)
 - Though git can cope with large projects, it generally works best
   when track the smallest meaningful unit that can be tested alone.
   Submodules can be used to stitch them together.

Thus if it is important to you to track the history of this project, I would suggest giving each source tree its own repository and stitching them together with a “supermodule” that tracks your scripts and includes references to the appropriate versions of each source package.

See http://who-t.blogspot.com/2009/04/big-fat-xorg-supermodule.html for an example of this kind of thing.

On the other hand, I don’t get the impression it is so important here to track the history from the beginning, so:

Show 6 quoted lines
> The problem I have is that over time the repository gets ever
> larger. When I update to a newer version of something I git rm the
> old tarball but git still keeps a copy and the folder grows ever
> larger. At the moment the only solution I have is to periodically rm
> -rf .git and start again. This works but is less than ideal because
> I lose all the history for my build scripts.

Maybe you could keep the build scripts in a git repository and synchronizing the tarballs out of line with some other tool, such as rsync or unison.

> Is it possible to make git delete its
> backup copies of removed files?

git is not intended to be a backup tool; as you’ve noticed, the older versions gradually accumulate and it becomes apparent over time that it would be really nice for older commits to expire.

I am guessing, but it sounds to me like what you are looking for is something that is distributed like git but is a backup system. Or in other words, a way to record a few snapshots like LVM or btrfs, but such that new snapshots can be easily transfered to another computer. At least I would be glad to learn of such a tool. ;-)

Hope that helps, Jonathan

Previous: Junio C HamanoNext: Andrew Benton
Message 5 of 8 in “Configuring git to for forget removed files”
  1. Andrew BentonFeb 20, 2010
  2. Tim VisherFeb 20, 2010
  3. Avery PennarunFeb 20, 2010
  4. Junio C HamanoFeb 20, 2010
  5. Jonathan NiederFeb 21, 2010
  6. Andrew BentonFeb 21, 2010
  7. Larry D'AnnaFeb 21, 2010
  8. Jacob HelwigFeb 21, 2010

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.