debian/control: simplify git-core -> git upgrade path
As policy ยง7.4 (Conflicting binary packages) emphasizes, when files
or directories move from one package to another, nowadays the right
way to declare that is with Replaces + Breaks. This way, the package
manager can perform the upgrade like so:
- unpack new package (git), overwriting files from the old
package (git-core);
- remove leftover files from the old package (git-core).
The old way (Replaces + Conflicts) involves an inefficient upgrade
path:
- remove old package (git-core);
- unpack new package (git).
which is especially problematic because it leaves packages depending
on git unusable between steps 1 and 2.
Our example is more complicated than that because there is still a
reason for the git package to conflict with very old versions of
git-core: ancient (etch) git-core provides /usr/bin/git through the
alternatives system and really does need to be removed before modern
git can be unpacked. Although upgrades from oldoldstable are not
officially supported, let's still keep a more precise Conflicts
relation to avoid unnecessary breakage if someone tries.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>