assistant: Fix location log when adding new file in direct mode.
This commit is contained in:
parent
25c47ae84f
commit
b19c2e6122
3 changed files with 31 additions and 29 deletions
|
@ -18,6 +18,7 @@ import Assistant.DaemonStatus
|
|||
import Assistant.Threads.Watcher
|
||||
import Assistant.TransferQueue
|
||||
import Logs.Transfer
|
||||
import Logs.Location
|
||||
import qualified Annex.Queue
|
||||
import qualified Git.Command
|
||||
import qualified Git.HashObject
|
||||
|
@ -204,15 +205,17 @@ handleAdds delayadd cs = returnWhen (null incomplete) $ do
|
|||
liftAnnex showEndFail
|
||||
return Nothing
|
||||
done change file (Just key) = do
|
||||
link <- liftAnnex $ ifM isDirect
|
||||
( calcGitLink file key
|
||||
, Command.Add.link file key True
|
||||
)
|
||||
liftAnnex $ whenM (pure DirWatcher.eventsCoalesce <||> isDirect) $ do
|
||||
sha <- inRepo $
|
||||
Git.HashObject.hashObject BlobObject link
|
||||
stageSymlink file sha
|
||||
showEndOk
|
||||
liftAnnex $ do
|
||||
logStatus key InfoPresent
|
||||
link <- ifM isDirect
|
||||
( calcGitLink file key
|
||||
, Command.Add.link file key True
|
||||
)
|
||||
whenM (pure DirWatcher.eventsCoalesce <||> isDirect) $ do
|
||||
sha <- inRepo $
|
||||
Git.HashObject.hashObject BlobObject link
|
||||
stageSymlink file sha
|
||||
showEndOk
|
||||
queueTransfers Next key (Just file) Upload
|
||||
return $ Just change
|
||||
|
||||
|
|
|
@ -142,8 +142,6 @@ link file key hascontent = handle (undo file key) $ do
|
|||
liftIO $ createSymbolicLink l file
|
||||
|
||||
when hascontent $ do
|
||||
logStatus key InfoPresent
|
||||
|
||||
-- touch the symlink to have the same mtime as the
|
||||
-- file it points to
|
||||
liftIO $ do
|
||||
|
@ -155,21 +153,21 @@ link file key hascontent = handle (undo file key) $ do
|
|||
{- Note: Several other commands call this, and expect it to
|
||||
- create the symlink and add it. -}
|
||||
cleanup :: FilePath -> Key -> Bool -> CommandCleanup
|
||||
cleanup file key hascontent = ifM (isDirect <&&> pure hascontent)
|
||||
( do
|
||||
l <- calcGitLink file key
|
||||
sha <- inRepo $ Git.HashObject.hashObject BlobObject l
|
||||
Annex.Queue.addUpdateIndex =<<
|
||||
inRepo (Git.UpdateIndex.stageSymlink file sha)
|
||||
when hascontent $
|
||||
logStatus key InfoPresent
|
||||
return True
|
||||
, do
|
||||
_ <- link file key hascontent
|
||||
params <- ifM (Annex.getState Annex.force)
|
||||
( return [Param "-f"]
|
||||
, return []
|
||||
)
|
||||
Annex.Queue.addCommand "add" (params++[Param "--"]) [file]
|
||||
return True
|
||||
)
|
||||
cleanup file key hascontent = do
|
||||
when hascontent $
|
||||
logStatus key InfoPresent
|
||||
ifM (isDirect <&&> pure hascontent)
|
||||
( do
|
||||
l <- calcGitLink file key
|
||||
sha <- inRepo $ Git.HashObject.hashObject BlobObject l
|
||||
Annex.Queue.addUpdateIndex =<<
|
||||
inRepo (Git.UpdateIndex.stageSymlink file sha)
|
||||
, do
|
||||
_ <- link file key hascontent
|
||||
params <- ifM (Annex.getState Annex.force)
|
||||
( return [Param "-f"]
|
||||
, return []
|
||||
)
|
||||
Annex.Queue.addCommand "add" (params++[Param "--"]) [file]
|
||||
)
|
||||
return True
|
||||
|
|
1
debian/changelog
vendored
1
debian/changelog
vendored
|
@ -8,6 +8,7 @@ git-annex (3.20130125) UNRELEASED; urgency=low
|
|||
of changed files by the assistant, while it still does data syncing
|
||||
and other tasks.
|
||||
* assistant: Ignore .DS_Store on OSX.
|
||||
* assistant: Fix location log when adding new file in direct mode.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Sat, 26 Jan 2013 15:48:40 +1100
|
||||
|
||||
|
|
Loading…
Reference in a new issue