diff --git a/Command/Smudge.hs b/Command/Smudge.hs index 6718b4908a..1e169c1bf1 100644 --- a/Command/Smudge.hs +++ b/Command/Smudge.hs @@ -8,6 +8,7 @@ module Command.Smudge where import Command +import qualified Annex import Annex.Content import Annex.Link import Annex.FileMatcher @@ -54,6 +55,8 @@ smudge file = do ifM (inAnnex k) ( do content <- calcRepo (gitAnnexLocation k) + whenM (annexThin <$> Annex.getGitConfig) $ + warning $ "Not able to honor annex.thin when git is checking out " ++ file ++ " (run git annex fix to re-thin files)" liftIO $ B.putStr . fromMaybe b =<< catchMaybeIO (B.readFile content) , liftIO $ B.putStr b diff --git a/debian/changelog b/debian/changelog index 05ee3dbd31..6a486b4bf5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +git-annex (6.20160413) UNRELEASED; urgency=medium + + * smudge: Print a warning when annex.thin is set, as git's smudge + interface does not allow honoring that configuration. + + -- Joey Hess Wed, 13 Apr 2016 13:30:32 -0400 + git-annex (6.20160412) unstable; urgency=medium * adjust --unlock: Enters an adjusted branch in which all annexed files diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn index 65b5dc7010..b9d9221fda 100644 --- a/doc/git-annex.mdwn +++ b/doc/git-annex.mdwn @@ -932,8 +932,8 @@ Here are all the supported configuration settings. Set this to `true` to make unlocked files be a hard link to their content in the annex, rather than a second copy. (Only when supported by the file system, and only in repository version 6.) This can save considerable - disk space, but modification made to a file will lose the local (and - possibly only) copy of the old version. So, enable with care. + disk space, but when a modification is made to a file, you will lose the + local (and possibly only) copy of the old version. So, enable with care. After setting (or unsetting) this, you should run `git annex fix` to fix up the annexed files in the work tree to be hard links (or copies). diff --git a/doc/tips/unlocked_files.mdwn b/doc/tips/unlocked_files.mdwn index 20605b6122..3a74043f04 100644 --- a/doc/tips/unlocked_files.mdwn +++ b/doc/tips/unlocked_files.mdwn @@ -135,6 +135,11 @@ make the second copy not be worth keeping: In situations like these, you may want to avoid the overhead of the second local copy of unlocked files. There's a config setting for that. +[[!template id=note text=""" +Note that setting annex.thin only has any effect on systems that support +hard links. It is supported on Windows, but not on FAT filesystems. +"""]] + git config annex.thin true After changing annex.thin, you'll want to fix up the work tree to @@ -142,8 +147,12 @@ match the new setting: git annex fix -Note that setting annex.thin only has any effect on systems that support -hard links. It is supported on Windows, but not on FAT filesystems. +Unfortunately, git's smudge interface does not let git-annex honor +the annex.thin configuration when git is checking out a file. +So, using `git checkout` to check out a different branch, or even +`git merge` can result in some non-thin files making their way into the +working tree, and using more disk space. A warning will be printed out in +this situation. You can always run `git annex fix` to re-thin such files. ## tradeoffs