split out Git/Command.hs
This commit is contained in:
		
					parent
					
						
							
								02f1bd2bf4
							
						
					
				
			
			
				commit
				
					
						ef28b3fef7
					
				
			
		
					 22 changed files with 125 additions and 100 deletions
				
			
		|  | @ -24,6 +24,7 @@ import Annex.Exception | |||
| import Annex.BranchState | ||||
| import Annex.Journal | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import qualified Git.Ref | ||||
| import qualified Git.Branch | ||||
| import qualified Git.UnionMerge | ||||
|  | @ -67,7 +68,7 @@ getBranch :: Annex (Git.Ref) | |||
| getBranch = maybe (hasOrigin >>= go >>= use) (return) =<< branchsha | ||||
| 	where | ||||
| 		go True = do | ||||
| 			inRepo $ Git.run "branch" | ||||
| 			inRepo $ Git.Command.run "branch" | ||||
| 				[Param $ show name, Param $ show originname] | ||||
| 			fromMaybe (error $ "failed to create " ++ show name) | ||||
| 				<$> branchsha | ||||
|  | @ -221,7 +222,7 @@ commitBranch branchref message parents = do | |||
| {- Lists all files on the branch. There may be duplicates in the list. -} | ||||
| files :: Annex [FilePath] | ||||
| files = withIndexUpdate $ do | ||||
| 	bfiles <- inRepo $ Git.pipeNullSplit | ||||
| 	bfiles <- inRepo $ Git.Command.pipeNullSplit | ||||
| 		[Params "ls-tree --name-only -r -z", Param $ show fullname] | ||||
| 	jfiles <- getJournalledFiles | ||||
| 	return $ jfiles ++ bfiles | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ import Common.Annex | |||
| import qualified Annex | ||||
| import qualified Annex.Queue | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import Annex.Content | ||||
| import Command | ||||
| 
 | ||||
|  | @ -101,5 +102,5 @@ startup = return True | |||
| shutdown :: Annex Bool | ||||
| shutdown = do | ||||
| 	saveState | ||||
| 	liftIO Git.reap -- zombies from long-running git processes | ||||
| 	liftIO Git.Command.reap -- zombies from long-running git processes | ||||
| 	return True | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ module Command.Sync where | |||
| import Common.Annex | ||||
| import Command | ||||
| import qualified Annex.Branch | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import qualified Git.Config | ||||
| 
 | ||||
| import qualified Data.ByteString.Lazy.Char8 as L | ||||
|  | @ -28,7 +28,8 @@ commit = do | |||
| 	next $ next $ do | ||||
| 		showOutput | ||||
| 		-- Commit will fail when the tree is clean, so ignore failure. | ||||
| 		_ <- inRepo $ Git.runBool "commit" [Param "-a", Param "-m", Param "sync"] | ||||
| 		_ <- inRepo $ Git.Command.runBool "commit" | ||||
| 			[Param "-a", Param "-m", Param "sync"] | ||||
| 		return True | ||||
| 
 | ||||
| pull :: CommandStart | ||||
|  | @ -38,7 +39,7 @@ pull = do | |||
| 	next $ next $ do | ||||
| 		showOutput | ||||
| 		checkRemote remote | ||||
| 		inRepo $ Git.runBool "pull" [Param remote] | ||||
| 		inRepo $ Git.Command.runBool "pull" [Param remote] | ||||
| 
 | ||||
| push :: CommandStart | ||||
| push = do | ||||
|  | @ -47,7 +48,7 @@ push = do | |||
| 	next $ next $ do | ||||
| 		Annex.Branch.update | ||||
| 		showOutput | ||||
| 		inRepo $ Git.runBool "push" [Param remote, matchingbranches] | ||||
| 		inRepo $ Git.Command.runBool "push" [Param remote, matchingbranches] | ||||
| 	where | ||||
| 		-- git push may be configured to not push matching | ||||
| 		-- branches; this should ensure it always does. | ||||
|  | @ -61,7 +62,7 @@ defaultRemote = do | |||
| 
 | ||||
| currentBranch :: Annex String | ||||
| currentBranch = last . split "/" . L.unpack . head . L.lines <$> | ||||
| 	inRepo (Git.pipeRead [Param "symbolic-ref", Param "HEAD"]) | ||||
| 	inRepo (Git.Command.pipeRead [Param "symbolic-ref", Param "HEAD"]) | ||||
| 
 | ||||
| checkRemote :: String -> Annex () | ||||
| checkRemote remote = do | ||||
|  |  | |||
|  | @ -13,7 +13,7 @@ import qualified Annex | |||
| import Utility.FileMode | ||||
| import Logs.Location | ||||
| import Annex.Content | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import qualified Git.LsFiles as LsFiles | ||||
| 
 | ||||
| def :: [Command] | ||||
|  | @ -34,14 +34,14 @@ cleanup :: FilePath -> Key -> CommandCleanup | |||
| cleanup file key = do | ||||
| 	liftIO $ removeFile file | ||||
| 	-- git rm deletes empty directory without --cached | ||||
| 	inRepo $ Git.run "rm" [Params "--cached --quiet --", File file] | ||||
| 	inRepo $ Git.Command.run "rm" [Params "--cached --quiet --", File file] | ||||
| 	 | ||||
| 	-- If the file was already committed, it is now staged for removal. | ||||
| 	-- Commit that removal now, to avoid later confusing the | ||||
| 	-- pre-commit hook if this file is later added back to | ||||
| 	-- git as a normal, non-annexed file. | ||||
| 	whenM (not . null <$> inRepo (LsFiles.staged [file])) $ do | ||||
| 		inRepo $ Git.run "commit" [ | ||||
| 		inRepo $ Git.Command.run "commit" [ | ||||
| 			Param "-m", Param "content removed from git annex", | ||||
| 			Param "--", File file] | ||||
| 
 | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ import qualified Data.ByteString.Lazy.Char8 as B | |||
| import Common.Annex | ||||
| import Command | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import qualified Annex | ||||
| import qualified Command.Unannex | ||||
| import Init | ||||
|  | @ -29,7 +30,7 @@ check = do | |||
| 		"cannot uninit when the " ++ show b ++ " branch is checked out" | ||||
| 	where | ||||
| 		current_branch = Git.Ref . head . lines . B.unpack <$> revhead | ||||
| 		revhead = inRepo $ Git.pipeRead  | ||||
| 		revhead = inRepo $ Git.Command.pipeRead  | ||||
| 			[Params "rev-parse --abbrev-ref HEAD"] | ||||
| 
 | ||||
| seek :: [CommandSeek] | ||||
|  | @ -57,5 +58,6 @@ cleanup = do | |||
| 	liftIO $ removeDirectoryRecursive annexdir | ||||
| 	-- avoid normal shutdown | ||||
| 	saveState | ||||
| 	inRepo $ Git.run "branch" [Param "-D", Param $ show Annex.Branch.name] | ||||
| 	inRepo $ Git.Command.run "branch" | ||||
| 		[Param "-D", Param $ show Annex.Branch.name] | ||||
| 	liftIO exitSuccess | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ import Utility.TempFile | |||
| import Logs.Location | ||||
| import qualified Annex | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import qualified Git.Ref | ||||
| import qualified Git.LsFiles as LsFiles | ||||
| import qualified Git.LsTree as LsTree | ||||
|  | @ -148,7 +149,7 @@ unusedKeys = do | |||
| excludeReferenced :: [Key] -> Annex [Key] | ||||
| excludeReferenced [] = return [] -- optimisation | ||||
| excludeReferenced l = do | ||||
| 	c <- inRepo $ Git.pipeRead [Param "show-ref"] | ||||
| 	c <- inRepo $ Git.Command.pipeRead [Param "show-ref"] | ||||
| 	removewith (getKeysReferenced : map getKeysReferencedInGit (refs c)) | ||||
| 		(S.fromList l) | ||||
| 	where | ||||
|  |  | |||
|  | @ -10,6 +10,7 @@ module Config where | |||
| import Common.Annex | ||||
| import qualified Git | ||||
| import qualified Git.Config | ||||
| import qualified Git.Command | ||||
| import qualified Annex | ||||
| 
 | ||||
| type ConfigKey = String | ||||
|  | @ -17,7 +18,7 @@ type ConfigKey = String | |||
| {- Changes a git config setting in both internal state and .git/config -} | ||||
| setConfig :: ConfigKey -> String -> Annex () | ||||
| setConfig k value = do | ||||
| 	inRepo $ Git.run "config" [Param k, Param value] | ||||
| 	inRepo $ Git.Command.run "config" [Param k, Param value] | ||||
| 	-- re-read git config and update the repo's state | ||||
| 	newg <- inRepo Git.Config.read | ||||
| 	Annex.changeState $ \s -> s { Annex.repo = newg } | ||||
|  |  | |||
							
								
								
									
										78
									
								
								Git.hs
									
										
									
									
									
								
							
							
						
						
									
										78
									
								
								Git.hs
									
										
									
									
									
								
							|  | @ -23,22 +23,12 @@ module Git ( | |||
| 	workTree, | ||||
| 	gitDir, | ||||
| 	configTrue, | ||||
| 	gitCommandLine, | ||||
| 	run, | ||||
| 	runBool, | ||||
| 	pipeRead, | ||||
| 	pipeWrite, | ||||
| 	pipeWriteRead, | ||||
| 	pipeNullSplit, | ||||
| 	pipeNullSplitB, | ||||
| 	attributes, | ||||
| 	reap, | ||||
| 	assertLocal, | ||||
| ) where | ||||
| 
 | ||||
| import qualified Data.Map as M | ||||
| import Data.Char | ||||
| import qualified Data.ByteString.Lazy.Char8 as L | ||||
| import Network.URI (uriPath, uriScheme) | ||||
| 
 | ||||
| import Common | ||||
|  | @ -121,74 +111,6 @@ workTree Repo { location = Url u } = uriPath u | |||
| workTree Repo { location = Dir d } = d | ||||
| workTree Repo { location = Unknown } = undefined | ||||
| 
 | ||||
| {- Constructs a git command line operating on the specified repo. -} | ||||
| gitCommandLine :: [CommandParam] -> Repo -> [CommandParam] | ||||
| gitCommandLine params repo@(Repo { location = Dir _ } ) = | ||||
| 	-- force use of specified repo via --git-dir and --work-tree | ||||
| 	[ Param ("--git-dir=" ++ gitDir repo) | ||||
| 	, Param ("--work-tree=" ++ workTree repo) | ||||
| 	] ++ params | ||||
| gitCommandLine _ repo = assertLocal repo $ error "internal" | ||||
| 
 | ||||
| {- Runs git in the specified repo. -} | ||||
| runBool :: String -> [CommandParam] -> Repo -> IO Bool | ||||
| runBool subcommand params repo = assertLocal repo $ | ||||
| 	boolSystem "git" $ gitCommandLine (Param subcommand : params) repo | ||||
| 
 | ||||
| {- Runs git in the specified repo, throwing an error if it fails. -} | ||||
| run :: String -> [CommandParam] -> Repo -> IO () | ||||
| run subcommand params repo = assertLocal repo $ | ||||
| 	runBool subcommand params repo | ||||
| 		>>! error $ "git " ++ show params ++ " failed" | ||||
| 
 | ||||
| {- Runs a git subcommand and returns its output, lazily.  | ||||
|  - | ||||
|  - Note that this leaves the git process running, and so zombies will | ||||
|  - result unless reap is called. | ||||
|  -} | ||||
| pipeRead :: [CommandParam] -> Repo -> IO L.ByteString | ||||
| pipeRead params repo = assertLocal repo $ do | ||||
| 	(_, h) <- hPipeFrom "git" $ toCommand $ gitCommandLine params repo | ||||
| 	hSetBinaryMode h True | ||||
| 	L.hGetContents h | ||||
| 
 | ||||
| {- Runs a git subcommand, feeding it input. | ||||
|  - You should call either getProcessStatus or forceSuccess on the PipeHandle. -} | ||||
| pipeWrite :: [CommandParam] -> L.ByteString -> Repo -> IO PipeHandle | ||||
| pipeWrite params s repo = assertLocal repo $ do | ||||
| 	(p, h) <- hPipeTo "git" (toCommand $ gitCommandLine params repo) | ||||
| 	L.hPut h s | ||||
| 	hClose h | ||||
| 	return p | ||||
| 
 | ||||
| {- Runs a git subcommand, feeding it input, and returning its output. | ||||
|  - You should call either getProcessStatus or forceSuccess on the PipeHandle. -} | ||||
| pipeWriteRead :: [CommandParam] -> L.ByteString -> Repo -> IO (PipeHandle, L.ByteString) | ||||
| pipeWriteRead params s repo = assertLocal repo $ do | ||||
| 	(p, from, to) <- hPipeBoth "git" (toCommand $ gitCommandLine params repo) | ||||
| 	hSetBinaryMode from True | ||||
| 	L.hPut to s | ||||
| 	hClose to | ||||
| 	c <- L.hGetContents from | ||||
| 	return (p, c) | ||||
| 
 | ||||
| {- Reads null terminated output of a git command (as enabled by the -z  | ||||
|  - parameter), and splits it. -} | ||||
| pipeNullSplit :: [CommandParam] -> Repo -> IO [String] | ||||
| pipeNullSplit params repo = map L.unpack <$> pipeNullSplitB params repo | ||||
| 
 | ||||
| {- For when Strings are not needed. -} | ||||
| pipeNullSplitB ::[CommandParam] -> Repo -> IO [L.ByteString] | ||||
| pipeNullSplitB params repo = filter (not . L.null) . L.split '\0' <$> | ||||
| 	pipeRead params repo | ||||
| 
 | ||||
| {- Reaps any zombie git processes. -} | ||||
| reap :: IO () | ||||
| reap = do | ||||
| 	-- throws an exception when there are no child processes | ||||
| 	r <- catchDefaultIO (getAnyProcessStatus False True) Nothing | ||||
| 	maybe (return ()) (const reap) r | ||||
| 
 | ||||
| {- Checks if a string from git config is a true value. -} | ||||
| configTrue :: String -> Bool | ||||
| configTrue s = map toLower s == "true" | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ import qualified Data.ByteString.Lazy.Char8 as L | |||
| import Common | ||||
| import Git | ||||
| import Git.Sha | ||||
| import Git.Command | ||||
| 
 | ||||
| {- Checks if the second branch has any commits not present on the first | ||||
|  - branch. -} | ||||
|  |  | |||
|  | @ -21,6 +21,7 @@ import qualified Data.ByteString.Lazy.Char8 as L | |||
| 
 | ||||
| import Git | ||||
| import Git.Sha | ||||
| import Git.Command | ||||
| import Utility.SafeCommand | ||||
| 
 | ||||
| type CatFileHandle = (PipeHandle, Handle, Handle) | ||||
|  |  | |||
|  | @ -11,6 +11,7 @@ import System.Exit | |||
| 
 | ||||
| import Common | ||||
| import Git | ||||
| import Git.Command | ||||
| import qualified Git.Filename | ||||
| 
 | ||||
| {- Efficiently looks up a gitattributes value for each file in a list. -} | ||||
|  |  | |||
							
								
								
									
										82
									
								
								Git/Command.hs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								Git/Command.hs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,82 @@ | |||
| {- running git commands | ||||
|  - | ||||
|  - Copyright 2010, 2011 Joey Hess <joey@kitenet.net> | ||||
|  - | ||||
|  - Licensed under the GNU GPL version 3 or higher. | ||||
|  -} | ||||
| 
 | ||||
| module Git.Command where | ||||
| 
 | ||||
| import qualified Data.ByteString.Lazy.Char8 as L | ||||
| 
 | ||||
| import Common | ||||
| import Git | ||||
| import Git.Types | ||||
| 
 | ||||
| {- Constructs a git command line operating on the specified repo. -} | ||||
| gitCommandLine :: [CommandParam] -> Repo -> [CommandParam] | ||||
| gitCommandLine params repo@(Repo { location = Dir _ } ) = | ||||
| 	-- force use of specified repo via --git-dir and --work-tree | ||||
| 	[ Param ("--git-dir=" ++ gitDir repo) | ||||
| 	, Param ("--work-tree=" ++ workTree repo) | ||||
| 	] ++ params | ||||
| gitCommandLine _ repo = assertLocal repo $ error "internal" | ||||
| 
 | ||||
| {- Runs git in the specified repo. -} | ||||
| runBool :: String -> [CommandParam] -> Repo -> IO Bool | ||||
| runBool subcommand params repo = assertLocal repo $ | ||||
| 	boolSystem "git" $ gitCommandLine (Param subcommand : params) repo | ||||
| 
 | ||||
| {- Runs git in the specified repo, throwing an error if it fails. -} | ||||
| run :: String -> [CommandParam] -> Repo -> IO () | ||||
| run subcommand params repo = assertLocal repo $ | ||||
| 	runBool subcommand params repo | ||||
| 		>>! error $ "git " ++ show params ++ " failed" | ||||
| 
 | ||||
| {- Runs a git subcommand and returns its output, lazily.  | ||||
|  - | ||||
|  - Note that this leaves the git process running, and so zombies will | ||||
|  - result unless reap is called. | ||||
|  -} | ||||
| pipeRead :: [CommandParam] -> Repo -> IO L.ByteString | ||||
| pipeRead params repo = assertLocal repo $ do | ||||
| 	(_, h) <- hPipeFrom "git" $ toCommand $ gitCommandLine params repo | ||||
| 	hSetBinaryMode h True | ||||
| 	L.hGetContents h | ||||
| 
 | ||||
| {- Runs a git subcommand, feeding it input. | ||||
|  - You should call either getProcessStatus or forceSuccess on the PipeHandle. -} | ||||
| pipeWrite :: [CommandParam] -> L.ByteString -> Repo -> IO PipeHandle | ||||
| pipeWrite params s repo = assertLocal repo $ do | ||||
| 	(p, h) <- hPipeTo "git" (toCommand $ gitCommandLine params repo) | ||||
| 	L.hPut h s | ||||
| 	hClose h | ||||
| 	return p | ||||
| 
 | ||||
| {- Runs a git subcommand, feeding it input, and returning its output. | ||||
|  - You should call either getProcessStatus or forceSuccess on the PipeHandle. -} | ||||
| pipeWriteRead :: [CommandParam] -> L.ByteString -> Repo -> IO (PipeHandle, L.ByteString) | ||||
| pipeWriteRead params s repo = assertLocal repo $ do | ||||
| 	(p, from, to) <- hPipeBoth "git" (toCommand $ gitCommandLine params repo) | ||||
| 	hSetBinaryMode from True | ||||
| 	L.hPut to s | ||||
| 	hClose to | ||||
| 	c <- L.hGetContents from | ||||
| 	return (p, c) | ||||
| 
 | ||||
| {- Reads null terminated output of a git command (as enabled by the -z  | ||||
|  - parameter), and splits it. -} | ||||
| pipeNullSplit :: [CommandParam] -> Repo -> IO [String] | ||||
| pipeNullSplit params repo = map L.unpack <$> pipeNullSplitB params repo | ||||
| 
 | ||||
| {- For when Strings are not needed. -} | ||||
| pipeNullSplitB ::[CommandParam] -> Repo -> IO [L.ByteString] | ||||
| pipeNullSplitB params repo = filter (not . L.null) . L.split '\0' <$> | ||||
| 	pipeRead params repo | ||||
| 
 | ||||
| {- Reaps any zombie git processes. -} | ||||
| reap :: IO () | ||||
| reap = do | ||||
| 	-- throws an exception when there are no child processes | ||||
| 	r <- catchDefaultIO (getAnyProcessStatus False True) Nothing | ||||
| 	maybe (return ()) (const reap) r | ||||
|  | @ -9,6 +9,7 @@ module Git.HashObject where | |||
| 
 | ||||
| import Common | ||||
| import Git | ||||
| import Git.Command | ||||
| 
 | ||||
| {- Injects a set of files into git, returning the shas of the objects | ||||
|  - and an IO action to call ones the the shas have been used. -} | ||||
|  |  | |||
|  | @ -16,6 +16,7 @@ module Git.LsFiles ( | |||
| ) where | ||||
| 
 | ||||
| import Git | ||||
| import Git.Command | ||||
| import Utility.SafeCommand | ||||
| 
 | ||||
| {- Scans for files that are checked into git at the specified locations. -} | ||||
|  |  | |||
|  | @ -17,6 +17,7 @@ import System.Posix.Types | |||
| import qualified Data.ByteString.Lazy.Char8 as L | ||||
| 
 | ||||
| import Git | ||||
| import Git.Command | ||||
| import qualified Git.Filename | ||||
| import Utility.SafeCommand | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,6 +22,7 @@ import Control.Monad (forM_) | |||
| import Utility.SafeCommand | ||||
| 
 | ||||
| import Git | ||||
| import Git.Command | ||||
| 
 | ||||
| {- An action to perform in a git repository. The file to act on | ||||
|  - is not included, and must be able to be appended after the params. -} | ||||
|  |  | |||
|  | @ -11,6 +11,7 @@ import qualified Data.ByteString.Lazy.Char8 as L | |||
| 
 | ||||
| import Common | ||||
| import Git | ||||
| import Git.Command | ||||
| 
 | ||||
| {- Converts a fully qualified git ref into a user-visible version. -} | ||||
| describe :: Ref -> String | ||||
|  |  | |||
|  | @ -22,6 +22,7 @@ import Common | |||
| import Git | ||||
| import Git.Sha | ||||
| import Git.CatFile | ||||
| import Git.Command | ||||
| 
 | ||||
| type Streamer = (String -> IO ()) -> IO () | ||||
| 
 | ||||
|  |  | |||
|  | @ -15,6 +15,7 @@ import System.Process | |||
| import Common.Annex | ||||
| import Types.Remote | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import qualified Git.Config | ||||
| import qualified Git.Construct | ||||
| import Config | ||||
|  | @ -148,7 +149,7 @@ checkPresent r bupr k | |||
| 		ok <- onBupRemote bupr boolSystem "git" params | ||||
| 		return $ Right ok | ||||
| 	| otherwise = liftIO $ catchMsgIO $ | ||||
| 		boolSystem "git" $ Git.gitCommandLine params bupr | ||||
| 		boolSystem "git" $ Git.Command.gitCommandLine params bupr | ||||
| 	where | ||||
| 		params =  | ||||
| 			[ Params "show-ref --quiet --verify" | ||||
|  | @ -168,7 +169,7 @@ storeBupUUID u buprepo = do | |||
| 			r' <- Git.Config.read r | ||||
| 			let olduuid = Git.Config.get "annex.uuid" "" r' | ||||
| 			when (olduuid == "") $ | ||||
| 				Git.run "config" | ||||
| 				Git.Command.run "config" | ||||
| 					[Param "annex.uuid", Param v] r' | ||||
| 	where | ||||
| 		v = fromUUID u | ||||
|  |  | |||
|  | @ -16,6 +16,7 @@ import Utility.RsyncFile | |||
| import Annex.Ssh | ||||
| import Types.Remote | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import qualified Git.Config | ||||
| import qualified Git.Construct | ||||
| import qualified Annex | ||||
|  | @ -176,7 +177,7 @@ onLocal r a = do | |||
| 		-- for anything onLocal is used to do. | ||||
| 		Annex.BranchState.disableUpdate | ||||
| 		ret <- a | ||||
| 		liftIO Git.reap | ||||
| 		liftIO Git.Command.reap | ||||
| 		return ret | ||||
| 
 | ||||
| keyUrls :: Git.Repo -> Key -> [String] | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ import qualified Data.Map as M | |||
| import Common.Annex | ||||
| import Types.Remote | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import qualified Git.Construct | ||||
| 
 | ||||
| {- Special remotes don't have a configured url, so Git.Repo does not | ||||
|  | @ -33,7 +34,7 @@ gitConfigSpecialRemote u c k v = do | |||
| 	set ("annex-"++k) v | ||||
| 	set ("annex-uuid") (fromUUID u) | ||||
| 	where | ||||
| 		set a b = inRepo $ Git.run "config" | ||||
| 		set a b = inRepo $ Git.Command.run "config" | ||||
| 			[Param (configsetting a), Param b] | ||||
| 		remotename = fromJust (M.lookup "name" c) | ||||
| 		configsetting s = "remote." ++ remotename ++ "." ++ s | ||||
|  |  | |||
|  | @ -9,6 +9,7 @@ module Upgrade.V2 where | |||
| 
 | ||||
| import Common.Annex | ||||
| import qualified Git | ||||
| import qualified Git.Command | ||||
| import qualified Git.Ref | ||||
| import qualified Annex.Branch | ||||
| import Logs.Location | ||||
|  | @ -53,7 +54,7 @@ upgrade = do | |||
| 	showProgress | ||||
| 
 | ||||
| 	when e $ do | ||||
| 		inRepo $ Git.run "rm" [Param "-r", Param "-f", Param "-q", File old] | ||||
| 		inRepo $ Git.Command.run "rm" [Param "-r", Param "-f", Param "-q", File old] | ||||
| 		unless bare $ inRepo gitAttributesUnWrite | ||||
| 	showProgress | ||||
| 
 | ||||
|  | @ -104,7 +105,8 @@ push = do | |||
| 			Annex.Branch.update -- just in case | ||||
| 			showAction "pushing new git-annex branch to origin" | ||||
| 			showOutput | ||||
| 			inRepo $ Git.run "push" [Param "origin", Param $ show Annex.Branch.name] | ||||
| 			inRepo $ Git.Command.run "push" | ||||
| 				[Param "origin", Param $ show Annex.Branch.name] | ||||
| 		_ -> do | ||||
| 			-- no origin exists, so just let the user | ||||
| 			-- know about the new branch | ||||
|  | @ -127,7 +129,7 @@ gitAttributesUnWrite repo = do | |||
| 		c <- readFileStrict attributes | ||||
| 		liftIO $ viaTmp writeFile attributes $ unlines $ | ||||
| 			filter (`notElem` attrLines) $ lines c | ||||
| 		Git.run "add" [File attributes] repo | ||||
| 		Git.Command.run "add" [File attributes] repo | ||||
| 
 | ||||
| stateDir :: FilePath | ||||
| stateDir = addTrailingPathSeparator ".git-annex" | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Joey Hess
				Joey Hess