I didn't see a reply to this, so hopefully this isn't extraneous.
Pulp does download and associate new content with a repository during a sync. Old packages are unassociated from the repository, but are not removed from the file system.
This last part is due to the fact that packages are shared among the repositories to reduce used file system space, but one repository's importer is not aware of the content associations of other repositories, and therefore cannot safely remove content from disk.
Removing content is currently "manual". We provide an orphaned content  API, which can be found under our content management REST API docs here:
 orphaned content: packages that are not associated with any repositories
Jason L Connor
On Jun 24, 2013, at 1:29 AM, Lukas Zapletal <lzap redhat com> wrote:
> it is better to ask on the Pulp list, but if I remember this right, Pulp
> handles this automatically.
> During repo sync, new packages are downloaded and then links (on a file
> system level) are created and repocreate called to construct the
> repository. One of the last steps is to clean unused packages (which
> does not have any references).
> But I am not sure if this cleanup phase is done at the end of every
> synchronization, or once a week or something. I believe every single
> /CCing pulp list
linear on freenode #pulp
GPG Fingerprint: 2048R/CC4ED7C1
Pulp-list mailing list
Pulp-list redhat com