From debmirror manpages:
DEBMIRROR(1) User Contributed Perl Documentation DEBMIRROR(1)
debmirror - Debian partial mirror script, with ftp, http, hftp or rsync
and package pool support
debmirror [options] mirrordir
This program downloads and maintains a partial local Debian mirror. It
can mirror any combination of architectures, distributions, and sec‐
tions. Files are transferred by ftp, and package pools are fully sup‐
ported. It also does locking and updates trace files.
To support package pools, this program mirrors in three steps.
1. download Packages and Sources files
First it downloads all Packages and Sources files for the subset of
Debian it was instructed to get.
2. clean up unknown files
Any files and directories on the local mirror that are not in the
list are removed.
3. download everything else
The Packages and Sources files are scanned, to build up a list of
all the files they refer to. A few other miscellaneous files are
added to the list. Then the program makes sure that each file in
the list is present on the local mirror and is up-to-date, using
file size (and optionally md5sum) checks. Any necessary files are
I had never paid attention step two before I tried to add breezy-updates and breezy-security, into my existing Ubuntu Breezy repository. I executed debmirror without putting breezy in the dist parameter (instead, only breezy-updates and breezy-security), hence, I lost 11 Gigs of data.
Mental note: RTFM RTFM RTFM