make GIT_DIR, GIT_WORK_TREE absolute
GIT_DIR is set to something relative, like ".git" in the pre-commit hook. But internally all the directories are assumed to be absolute.
This commit is contained in:
		
					parent
					
						
							
								eb6cb1b87f
							
						
					
				
			
			
				commit
				
					
						a1885bd116
					
				
			
		
					 2 changed files with 6 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -29,20 +29,22 @@ import qualified Git.Config
 | 
			
		|||
 -}
 | 
			
		||||
get :: IO Repo
 | 
			
		||||
get = do
 | 
			
		||||
	gd <- takeenv "GIT_DIR"
 | 
			
		||||
	gd <- pathenv "GIT_DIR"
 | 
			
		||||
	r <- configure gd =<< maybe fromCwd fromPath gd
 | 
			
		||||
	wt <- maybe (worktree $ location r) Just <$> takeenv "GIT_WORK_TREE"
 | 
			
		||||
	wt <- maybe (worktree $ location r) Just <$> pathenv "GIT_WORK_TREE"
 | 
			
		||||
	case wt of
 | 
			
		||||
		Nothing -> return r
 | 
			
		||||
		Just d -> do
 | 
			
		||||
			changeWorkingDirectory d
 | 
			
		||||
			return $ addworktree wt r
 | 
			
		||||
	where
 | 
			
		||||
		takeenv s = do
 | 
			
		||||
		pathenv s = do
 | 
			
		||||
			v <- getEnv s
 | 
			
		||||
			when (isJust v) $
 | 
			
		||||
				unsetEnv s
 | 
			
		||||
			return v
 | 
			
		||||
			case v of
 | 
			
		||||
				Nothing -> return Nothing
 | 
			
		||||
				Just d -> Just <$> absPath d
 | 
			
		||||
		configure Nothing r = Git.Config.read r
 | 
			
		||||
		configure (Just d) r = do
 | 
			
		||||
			r' <- Git.Config.read r
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								test.hs
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								test.hs
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -25,7 +25,6 @@ import qualified Utility.SafeCommand
 | 
			
		|||
import qualified Annex
 | 
			
		||||
import qualified Annex.UUID
 | 
			
		||||
import qualified Backend
 | 
			
		||||
import qualified Git.Config
 | 
			
		||||
import qualified Git.CurrentRepo
 | 
			
		||||
import qualified Git.Filename
 | 
			
		||||
import qualified Locations
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue