summaryrefslogtreecommitdiff
path: root/Command/Init.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-03-03 16:40:55 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-03-03 16:40:55 -0400
commitb5b78f26ecabdb74c05f8200de5f9d054da5cbae (patch)
treec7a914c0799a1606774a4653456b9033174e4d35 /Command/Init.hs
parentb88637fff10d4d845404882e4ec95cfc071dcac0 (diff)
fix up commands that are trouble on bare repos
Most will just abort. init does a basic init and gives a command to run elsewhere to finish it.
Diffstat (limited to 'Command/Init.hs')
-rw-r--r--Command/Init.hs16
1 files changed, 12 insertions, 4 deletions
diff --git a/Command/Init.hs b/Command/Init.hs
index 1074d100e..509c9e51c 100644
--- a/Command/Init.hs
+++ b/Command/Init.hs
@@ -41,11 +41,19 @@ perform :: String -> CommandPerform
perform description = do
g <- Annex.gitRepo
u <- getUUID g
- describeUUID u description
setVersion
- liftIO $ gitAttributesWrite g
- gitPreCommitHookWrite g
- return $ Just cleanup
+ if Git.repoIsLocalBare g
+ then do
+ showLongNote $
+ "This is a bare repository, so its description cannot be committed.\n" ++
+ "To record the description, run this command in a clone of this repository:\n" ++
+ " git annex describe " ++ (show u) ++ " '" ++ description ++ "'\n\n"
+ return $ Just $ return True
+ else do
+ describeUUID u description
+ liftIO $ gitAttributesWrite g
+ gitPreCommitHookWrite g
+ return $ Just cleanup
cleanup :: CommandCleanup
cleanup = do