summaryrefslogtreecommitdiff
path: root/Git/Ref.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-03-04 15:25:13 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-03-04 15:25:35 -0400
commit15ffb8b60e26bd8707c132f2452cb4adbe7e6d02 (patch)
tree3db0ba20a0f03c918af18afaa8481b591e9001b0 /Git/Ref.hs
parent8ad7398e29c9bd2ec25274bcca808650778e1457 (diff)
sync: Fix committing when in a direct mode repo that has no HEAD ref.
Seen for example, a newly checked out git submodule. In this case, .git/HEAD is a raw sha, rather than the usual reference to a ref. Removed currentSha in passing, since it was a more roundabout way of doing what headSha does, and headSha is more robust.
Diffstat (limited to 'Git/Ref.hs')
-rw-r--r--Git/Ref.hs3
1 files changed, 3 insertions, 0 deletions
diff --git a/Git/Ref.hs b/Git/Ref.hs
index 5ad7577ff..6bc47d5ed 100644
--- a/Git/Ref.hs
+++ b/Git/Ref.hs
@@ -88,6 +88,9 @@ sha branch repo = process <$> showref repo
process [] = Nothing
process s = Just $ Ref $ firstLine s
+headSha :: Repo -> IO (Maybe Sha)
+headSha = sha headRef
+
{- List of (shas, branches) matching a given ref or refs. -}
matching :: [Ref] -> Repo -> IO [(Sha, Branch)]
matching refs repo = matching' (map fromRef refs) repo