diff options
author | Joey Hess <joey@kitenet.net> | 2011-07-07 19:29:36 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-07-07 19:29:36 -0400 |
commit | 67dcc1f171f0bbe2b57d20fbafce9f6c9b8f781e (patch) | |
tree | 023171ff974e670cf3951033514f86d5b371a654 | |
parent | ff531b96778abba9e992103a644ba80f7ddf2397 (diff) |
add: Avoid a failure mode that resulted in the file seemingly being deleted (content put in the annex but no symlink present).
-rw-r--r-- | Command/Add.hs | 4 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | doc/bugs/git_annex_add_eats_files_when_filename_is_too_long.mdwn | 4 |
3 files changed, 8 insertions, 2 deletions
diff --git a/Command/Add.hs b/Command/Add.hs index 2831e1b35..e7d16b6c0 100644 --- a/Command/Add.hs +++ b/Command/Add.hs @@ -51,11 +51,11 @@ perform (file, backend) = do cleanup :: FilePath -> Key -> CommandCleanup cleanup file key = do - logStatus key InfoPresent - link <- calcGitLink file key liftIO $ createSymbolicLink link file + logStatus key InfoPresent + -- touch the symlink to have the same mtime as the file it points to s <- liftIO $ getFileStatus file let mtime = modificationTime s diff --git a/debian/changelog b/debian/changelog index ef0ec7719..eb9037771 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ git-annex (3.20110706) UNRELEASED; urgency=low * Bugfix: Forgot to de-escape keys when upgrading. Could result in bad location log data for keys that contain [&:%] in their names. (A workaround for this problem is to run git annex fsck.) + * add: Avoid a failure mode that resulted in the file seemingly being + deleted (content put in the annex but no symlink present). -- Joey Hess <joeyh@debian.org> Tue, 05 Jul 2011 20:52:11 -0400 diff --git a/doc/bugs/git_annex_add_eats_files_when_filename_is_too_long.mdwn b/doc/bugs/git_annex_add_eats_files_when_filename_is_too_long.mdwn index af807b65d..d17e569f1 100644 --- a/doc/bugs/git_annex_add_eats_files_when_filename_is_too_long.mdwn +++ b/doc/bugs/git_annex_add_eats_files_when_filename_is_too_long.mdwn @@ -8,3 +8,7 @@ Recently I ran into the following situation under Ubuntu with an encrypted home The file seems to be completely gone. It no longer exists in the current directory, or under .git/annex. I don't mind horribly that git-annex failed due to the name length limit, but it shouldn't have deleted my file in the process (fortunately the file wasn't very important, or hard to recover). + +> [[done]], as noted it did not delete content and now it makes the symlink +> before trying to write to the location log, avoiding that gotcha. +> --[[Joey]] |