This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Complaining after fair notice of dropping XP support. Was: Not very nice at all.

On Thu, 10 Nov 2016, Erik Soderquist wrote:

Date: Thu, 10 Nov 2016 17:16:53 -0500
From: Erik Soderquist <>
Subject: Re: Complaining after fair notice of dropping XP support. Was: Not
    very nice at all.

Greetings, Erik,

On Thu, Nov 10, 2016 at 2:19 PM, Peter A. Castro wrote:
And for those who think keeping a private mirror is trivial, let me give you
some stats.  A full snapshot of Cygwin, 32-bit + 64-bit (+noarch) + source
packages (Current and Previous) is about 137Gb.  Don't believe me? Your
setup.ini has a size (and a hash) for every package.  Add them up yourself.
Now consider that I have about 4000 snapshots (and counting!) of Cygwin.
Oh!  Quick quiz:
  What's 137Gb * 4000?
  Answer: 535Tb.
Now, do you really think I have that amount of storage?  Of course not. The
Time Machine isn't organized like that (don't be silly).  It's currently
about 500Gb (which is quite a savings, if you think about it :-)

I would dearly love to know more about how you did this specific piece...

A good magician never reveals how the trick works.  8^)

Sadly I'm not a good magician.

It's not all that complicated, if you think about it. Each time a new setup.ini is generated only a hand full of packages was actually updated, so really, day-to-day, there's not all that much change.

I keep a delta database and each time I grab a new setup.ini I compare all of the packages listed to my existing database. Anything new, I pull down and add to the archive. Anything already present I don't re-pull. Think of it as de-duplication on a package level (though I do this for more than just setup.ini, but that's a separate trick).

It's only if you decide you want a complete copy of all packages for any
given circa that the amount of data instantiating is alot.

Then, from the setup.ini, I create a new circa directory and, really, the smoke-and-mirrors of the trick is that it's all symlinks to the real package storage, of which I have exactly one copy. Hence, 500Gb instead of 535Tb.

So, um, "Ta-da"! :-)

Oh, this is all automated, btw. I hardly touch it except to clean out old logs and do backups from time to time.

Sorry, it wasn't all that good a trick, was it.

-- Erik

--=> Peter A. Castro
Email: doctor at fruitbat dot org / Peter dot Castro at oracle dot com
	"Cats are just autistic Dogs" -- Dr. Tony Attwood

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]