Delete paths in a component in topologically sorted order
The outputs of a derivation can refer to each other (even though they cannot have cycles), so they have to be deleted in the right order. http://hydra.nixos.org/build/3026118
This commit is contained in:
		
							parent
							
								
									31114ec3a5
								
							
						
					
					
						commit
						2923b55f9d
					
				
					 1 changed files with 3 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -454,6 +454,7 @@ bool LocalStore::tryToDelete(GCState & state, const Path & path)
 | 
			
		|||
       is, we can delete the elements of ‘paths’ only if all referrers
 | 
			
		||||
       of ‘paths’ are garbage. */
 | 
			
		||||
    PathSet paths, referrers;
 | 
			
		||||
    Paths pathsSorted;
 | 
			
		||||
 | 
			
		||||
    if (isValidPath(path)) {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -516,7 +517,8 @@ bool LocalStore::tryToDelete(GCState & state, const Path & path)
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
    /* The paths are garbage, so delete them. */
 | 
			
		||||
    foreach (PathSet::iterator, i, paths) {
 | 
			
		||||
    pathsSorted = topoSortPaths(*this, paths);
 | 
			
		||||
    foreach (Paths::iterator, i, pathsSorted) {
 | 
			
		||||
        if (shouldDelete(state.options.action)) {
 | 
			
		||||
 | 
			
		||||
            /* If it's a valid path that's not a regular file or
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue