[[!comment format=mdwn username="https://www.google.com/accounts/o8/id?id=AItOawmhfodZquCI_EEl-f3h7HkROTszlsQL6yA" nickname="Joe" subject="comment 4" date="2013-06-16T17:27:18Z" content=""" I have a workaround that requires a small patch. I'm not sure why it's not creating the mapping, but I noticed that git annex fsck has a verifyDirectMapping which will create the mapping if it doesn't exist. git annex fsck will throw an error on fixLinks and won't proceed to verifyDirectMapping if the map file doesn't exist. So, I needed a way to call verifyDirectMapping directly. My hack is to add an argument to git annex fsck to call verifyDirectMapping. My workflow is this: **repo1**: [[!format sh \"\"\" echo a > new.txt git annex add . git commit -m \"add a\" git copy --to origin git annex sync \"\"\"]] **repo2**: [[!format sh \"\"\" git annex sync git annex pull origin synced/master git annex fsck --verifyDirectMapping git annex get . \"\"\"]] The new file comes down cleanly. I'm sure there's a better way to do this to fix the core issue, but here's how I patched Fsck.hs as a minimal workaround [[!format diff \"\"\" diff --git a/Command/Fsck.hs b/Command/Fsck.hs old mode 100644 new mode 100755 index 9af6a4a..97aabb8 --- a/Command/Fsck.hs +++ b/Command/Fsck.hs @@ -59,12 +60,16 @@ incrementalScheduleOption :: Option incrementalScheduleOption = Option.field [] \"incremental-schedule\" paramTime \"schedule incremental fscking\" +verifyDirectMappingOption :: Option +verifyDirectMappingOption = Option.flag [] \"verifyDirectMapping\" \"verifies direct mappings are consistent\" + options :: [Option] options = [ fromOption , startIncrementalOption , moreIncrementalOption , incrementalScheduleOption + , verifyDirectMappingOption ] seek :: [CommandSeek] @@ -107,18 +112,23 @@ withIncremental = withValue $ do start :: Maybe Remote -> Incremental -> FilePath -> (Key, Backend) -> CommandStart start from inc file (key, backend) = do numcopies <- numCopies file - case from of - Nothing -> go $ perform key file backend numcopies - Just r -> go $ performRemote key file backend numcopies r + verify <- Annex.getFlag (Option.name verifyDirectMappingOption) + if verify + then go $ verifyDirectMapping key file + else + case from of + Nothing -> go $ perform key file backend numcopies + Just r -> go $ performRemote key file backend numcopies r \"\"\"]] """]]