debian/control: simplify git-core -> git upgrade path
commitd686c085a0f7bdae53558c5171ce398185f92f36
authorJonathan Nieder <jrnieder@gmail.com>
Thu, 5 May 2011 07:02:56 +0000 (5 02:02 -0500)
committerJonathan Nieder <jrnieder@gmail.com>
Thu, 5 May 2011 08:49:07 +0000 (5 03:49 -0500)
treea378dc6d4e547efefddfed1f4b553c8fd05333c0
parentc578bc0a693127e6eaa49ffa56a797d38bae4a21
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>
debian/changelog
debian/control