* `nix-env -u' now allows a specific version to be specified when
upgrading.
  This fixes a bug reported by Martin:
    $ nix-env -i foo-1.0
    $ nix-env -u foo-1.0
    upgrading foo-1.0 to foo-1.1
			
			
This commit is contained in:
		
							parent
							
								
									2746a879e2
								
							
						
					
					
						commit
						24286e15c9
					
				
					 2 changed files with 10 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -310,14 +310,16 @@ static void upgradeDerivations(EvalState & state,
 | 
			
		|||
         i != installedDrvs.end(); ++i)
 | 
			
		||||
    {
 | 
			
		||||
        DrvName drvName(i->second.name);
 | 
			
		||||
        DrvName selector;
 | 
			
		||||
 | 
			
		||||
        /* Do we want to upgrade this derivation? */
 | 
			
		||||
        bool upgrade = false;
 | 
			
		||||
        for (DrvNames::iterator j = selectors.begin();
 | 
			
		||||
             j != selectors.end(); ++j)
 | 
			
		||||
        {
 | 
			
		||||
            if (j->matches(drvName)) {
 | 
			
		||||
            if (j->name == "*" || j->name == drvName.name) {
 | 
			
		||||
                j->hits++;
 | 
			
		||||
                selector = *j;
 | 
			
		||||
                upgrade = true;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -344,9 +346,10 @@ static void upgradeDerivations(EvalState & state,
 | 
			
		|||
                    upgradeType == utLeq && d <= 0 ||
 | 
			
		||||
                    upgradeType == utAlways)
 | 
			
		||||
                {
 | 
			
		||||
                    if (bestDrv == availDrvs.end() ||
 | 
			
		||||
                        compareVersions(
 | 
			
		||||
                            bestName.version, newName.version) < 0)
 | 
			
		||||
                    if (selector.matches(newName) &&
 | 
			
		||||
                        (bestDrv == availDrvs.end() ||
 | 
			
		||||
                         compareVersions(
 | 
			
		||||
                             bestName.version, newName.version) < 0))
 | 
			
		||||
                    {
 | 
			
		||||
                        bestDrv = j;
 | 
			
		||||
                        bestName = newName;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue