The use case is a QEMU build with GlusterFS native integration.
You’ve created your custom debs.
You don’t want your packages to be replaced by the official Debian ones (which lack the desired feature) the next time you do an apt-get upgrade.
Adopt a customized deb revision name/number such as -2+glusterfs.
More explicitely, on top of debian/changelog you write something like:
The magic is done by APT Pinning.
Put this in your /etc/apt/preferences (or create a specific fragment in /etc/apt/preferences.d/)
Package: qemu* Pin: version *-*+glusterfs Pin-Priority: 1001
So, in case you create your own repo, only QEMU-related packages whose revision number ends in +glusterfs (i.e.your own “flavour”) will automatically replace your installed ones.
Which is visibly far more flexible then using aptitude hold and friends.