1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 10:41:16 +02:00

* `nix-env --upgrade --eq': only upgrade if the old version is equal

to the new version.  This is actually useful.
This commit is contained in:
Eelco Dolstra 2006-06-27 12:17:25 +00:00
parent f4a3a280db
commit a945fb7905
2 changed files with 5 additions and 2 deletions

View file

@ -476,7 +476,7 @@ static void opInstall(Globals & globals,
}
typedef enum { utLt, utLeq, utAlways } UpgradeType;
typedef enum { utLt, utLeq, utEq, utAlways } UpgradeType;
static void upgradeDerivations(Globals & globals,
@ -520,6 +520,7 @@ static void upgradeDerivations(Globals & globals,
int d = compareVersions(drvName.version, newName.version);
if (upgradeType == utLt && d < 0 ||
upgradeType == utLeq && d <= 0 ||
upgradeType == utEq && d == 0 ||
upgradeType == utAlways)
{
if ((bestElem == availElems.end() ||
@ -562,6 +563,7 @@ static void opUpgrade(Globals & globals,
i != opFlags.end(); ++i)
if (*i == "--lt") upgradeType = utLt;
else if (*i == "--leq") upgradeType = utLeq;
else if (*i == "--eq") upgradeType = utEq;
else if (*i == "--always") upgradeType = utAlways;
else throw UsageError(format("unknown flag `%1%'") % *i);