sync --content: Drop files from remotes that don't have them after getting them.
Need to include the uuid of the local repo in the list of belived locations of a key after getting it, in order for the drop from remote to include it in the numcopies calculation.
This commit is contained in:
		
					parent
					
						
							
								0de879e264
							
						
					
				
			
			
				commit
				
					
						fded408b44
					
				
			
		
					 2 changed files with 8 additions and 2 deletions
				
			
		|  | @ -37,6 +37,7 @@ import Command.Get (getKeyFile') | |||
| import qualified Command.Move | ||||
| import Logs.Location | ||||
| import Annex.Drop | ||||
| import Annex.UUID | ||||
| 
 | ||||
| import qualified Data.Set as S | ||||
| import Data.Hash.MD5 | ||||
|  | @ -526,12 +527,15 @@ syncFile rs f (k, _) = do | |||
| 	locs <- loggedLocations k | ||||
| 	let (have, lack) = partition (\r -> Remote.uuid r `elem` locs) rs | ||||
| 
 | ||||
| 	sequence_ =<< handleget have | ||||
| 	got <- anyM id =<< handleget have | ||||
| 	putrs <- catMaybes . snd . unzip <$> (sequence =<< handleput lack) | ||||
| 
 | ||||
| 	u <- getUUID | ||||
| 	let locs' = concat [if got then [u] else [], putrs, locs] | ||||
| 
 | ||||
| 	-- Using callCommandAction rather than commandAction for drops, | ||||
| 	-- because a failure to drop does not mean the sync failed. | ||||
| 	handleDropsFrom (putrs ++ locs) rs "unwanted" True k (Just f) | ||||
| 	handleDropsFrom locs' rs "unwanted" True k (Just f) | ||||
| 		Nothing callCommandAction | ||||
|   where | ||||
|   	wantget have = allM id  | ||||
|  |  | |||
							
								
								
									
										2
									
								
								debian/changelog
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/changelog
									
										
									
									
										vendored
									
									
								
							|  | @ -15,6 +15,8 @@ git-annex (5.20140128) UNRELEASED; urgency=medium | |||
|   * sync --content: Reuse smart copy code from copy command, including | ||||
|     handling and repairing out of date location tracking info. | ||||
|     Closes: #737480 | ||||
|   * sync --content: Drop files from remotes that don't have them after | ||||
|     getting them. | ||||
|   * Added ways to configure rsync options to be used only when uploading | ||||
|     or downloading from a remote. Useful to eg limit upload bandwidth. | ||||
|   * Document in man page that sshcaching uses ssh ControlMaster. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Joey Hess
				Joey Hess