diff options
author | Joey Hess <joey@kitenet.net> | 2010-10-13 14:40:56 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-10-13 14:40:56 -0400 |
commit | 771a6b36e1527571b9a38baacbee6e864f44172a (patch) | |
tree | 7801037facceb6b602533be8efc104a6ff6091ec /GitRepo.hs | |
parent | 794d44cf1daf073f05d1a27b2a02c47db37c443a (diff) |
cost ordering
Diffstat (limited to 'GitRepo.hs')
-rw-r--r-- | GitRepo.hs | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/GitRepo.hs b/GitRepo.hs index 489c9cf75..c4a55863d 100644 --- a/GitRepo.hs +++ b/GitRepo.hs @@ -10,13 +10,17 @@ module GitRepo ( gitRepoFromCwd, gitRepoFromPath, gitRepoFromUrl, + gitRepoIsLocal, + gitRepoIsRemote, + gitConfigRemotes, gitWorkTree, gitDir, gitRelative, gitConfig, gitConfigRead, gitRun, - gitAttributes + gitAttributes, + gitRepoRemoteName ) where import Directory @@ -74,16 +78,23 @@ gitRepoFromUrl url query = do where path url = uriPath $ fromJust $ parseURI url {- User-visible description of a git repo by path or url -} -describe repo = if (local repo) then top repo else url repo +describe repo = if (gitRepoIsLocal repo) then top repo else url repo + +{- Returns the name of the remote that corresponds to the repo, if + - it is a remote. Otherwise, "" -} +gitRepoRemoteName r = + if (isJust $ remoteName r) + then fromJust $ remoteName r + else "" {- Some code needs to vary between remote and local repos, or bare and - non-bare, these functions help with that. -} -local repo = case (repo) of +gitRepoIsLocal repo = case (repo) of LocalGitRepo {} -> True RemoteGitRepo {} -> False -remote repo = not $ local repo +gitRepoIsRemote repo = not $ gitRepoIsLocal repo assertlocal repo action = - if (local repo) + if (gitRepoIsLocal repo) then action else error $ "acting on remote git repo " ++ (describe repo) ++ " not supported" |