From 8e26e0d90567d2b002c80a99e12b1b8f756069ad Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 8 Jan 2013 12:41:09 -0400 Subject: blog for yesterday --- Command/Fsck.hs | 21 ++++++++++++++------- debian/changelog | 6 ++++++ doc/design/assistant/blog/day_165__release_day.mdwn | 16 ++++++++++++++++ git-annex.cabal | 2 +- 4 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 doc/design/assistant/blog/day_165__release_day.mdwn diff --git a/Command/Fsck.hs b/Command/Fsck.hs index 7ea4294a5..870dac07d 100644 --- a/Command/Fsck.hs +++ b/Command/Fsck.hs @@ -16,6 +16,7 @@ import qualified Types.Backend import qualified Types.Key import qualified Backend import Annex.Content +import Annex.Content.Direct import Annex.Perms import Logs.Location import Logs.Trust @@ -301,14 +302,20 @@ checkKeySizeOr bad key file = case Types.Key.keySize key of {- Runs the backend specific check on a key's content. - - - In direct mode, this is skipped, because files can change at any time. -} + - In direct mode this is not done if the file has clearly been modified, + - because modification of direct mode files is allowed. It's still done + - if the file does not appear modified, to catch disk corruption, etc. + -} checkBackend :: Backend -> Key -> Annex Bool -checkBackend backend key = ifM isDirect - ( return True - , do - file <- inRepo $ gitAnnexLocation key - checkBackendOr badContent backend key file - ) +checkBackend backend key = do + file <- inRepo $ gitAnnexLocation key + ifM isDirect + ( ifM (goodContent key file) + ( checkBackendOr badContent backend key file + , return True + ) + , checkBackendOr badContent backend key file + ) checkBackendRemote :: Backend -> Key -> Remote -> Maybe FilePath -> Annex Bool checkBackendRemote backend key remote = maybe (return True) go diff --git a/debian/changelog b/debian/changelog index d4fe3df69..c3b1adf30 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +git-annex (3.20130108) UNRELEASED; urgency=low + + * fsck: Better checking of file content in direct mode. + + -- Joey Hess Tue, 08 Jan 2013 12:37:38 -0400 + git-annex (3.20130107) unstable; urgency=low * webapp: Add UI to stop and restart assistant. diff --git a/doc/design/assistant/blog/day_165__release_day.mdwn b/doc/design/assistant/blog/day_165__release_day.mdwn new file mode 100644 index 000000000..725dd6dd7 --- /dev/null +++ b/doc/design/assistant/blog/day_165__release_day.mdwn @@ -0,0 +1,16 @@ +(Posted a day late.) + +Got `git annex add` (and `addurl`) working in direct mode. This allowed me +to make `git annex sync` in direct mode no longer automatically add new +files. + +It's also now safe to mix direct mode annexed files with regular files in +git, in the same repository. Might have been safe all along, but I've +tested it, and it certianly works now. You just have to be careful to not +use `git commit -a` to commit changes to such files, since that'll also +stage the entire content of direct mode files. + +Made a minor release for these recent changes and bugfixes. Recommended if +you're using direct mode. Had to chase down a stupid typo I made yesterday +that caused fsck to infinite loop if it found a corrupted file. Thank +goodness for test suites. diff --git a/git-annex.cabal b/git-annex.cabal index 23773d02d..be739bb34 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -1,5 +1,5 @@ Name: git-annex -Version: 3.20130107 +Version: 3.20130108 Cabal-Version: >= 1.8 License: GPL Maintainer: Joey Hess -- cgit v1.2.3