fsck: Now works in bare repositories.
Checks location log information, and file contents. Does not check that numcopies is satisfied, as .gitattributes information about numcopies is not available in a bare repository. In practice, that should not be a problem, since fsck is also run in a checkout and will check numcopies there.
This commit is contained in:
		
					parent
					
						
							
								fef2cf7398
							
						
					
				
			
			
				commit
				
					
						2566eb85fe
					
				
			
		
					 7 changed files with 77 additions and 31 deletions
				
			
		
							
								
								
									
										25
									
								
								Command.hs
									
										
									
									
									
								
							
							
						
						
									
										25
									
								
								Command.hs
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -81,18 +81,6 @@ doCommand = start
 | 
			
		|||
		success = return True
 | 
			
		||||
		failure = showEndFail >> return False
 | 
			
		||||
 | 
			
		||||
notAnnexed :: FilePath -> Annex (Maybe a) -> Annex (Maybe a)
 | 
			
		||||
notAnnexed file a = maybe a (const $ return Nothing) =<< Backend.lookupFile file
 | 
			
		||||
 | 
			
		||||
isAnnexed :: FilePath -> ((Key, Backend Annex) -> Annex (Maybe a)) -> Annex (Maybe a)
 | 
			
		||||
isAnnexed file a = maybe (return Nothing) a =<< Backend.lookupFile file
 | 
			
		||||
 | 
			
		||||
notBareRepo :: Annex a -> Annex a
 | 
			
		||||
notBareRepo a = do
 | 
			
		||||
	whenM (Git.repoIsLocalBare <$> gitRepo) $
 | 
			
		||||
		error "You cannot run this subcommand in a bare repository."
 | 
			
		||||
	a
 | 
			
		||||
 | 
			
		||||
{- These functions find appropriate files or other things based on a
 | 
			
		||||
   user's parameters, and prepare actions operating on them. -}
 | 
			
		||||
withFilesInGit :: (FilePath -> CommandStart) -> CommandSeek
 | 
			
		||||
| 
						 | 
				
			
			@ -168,7 +156,18 @@ runFilteredGen a d fs = do
 | 
			
		|||
			ok <- matcher f
 | 
			
		||||
			if ok then a v else stop
 | 
			
		||||
 | 
			
		||||
{- filter out symlinks -}	
 | 
			
		||||
notAnnexed :: FilePath -> Annex (Maybe a) -> Annex (Maybe a)
 | 
			
		||||
notAnnexed file a = maybe a (const $ return Nothing) =<< Backend.lookupFile file
 | 
			
		||||
 | 
			
		||||
isAnnexed :: FilePath -> ((Key, Backend Annex) -> Annex (Maybe a)) -> Annex (Maybe a)
 | 
			
		||||
isAnnexed file a = maybe (return Nothing) a =<< Backend.lookupFile file
 | 
			
		||||
 | 
			
		||||
notBareRepo :: Annex a -> Annex a
 | 
			
		||||
notBareRepo a = do
 | 
			
		||||
	whenM (Git.repoIsLocalBare <$> gitRepo) $
 | 
			
		||||
		error "You cannot run this subcommand in a bare repository."
 | 
			
		||||
	a
 | 
			
		||||
 | 
			
		||||
notSymlink :: FilePath -> IO Bool
 | 
			
		||||
notSymlink f = liftIO $ not . isSymbolicLink <$> getSymbolicLinkStatus f
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue