honor preferred content when importing
Importing from a special remote honors its preferred content too; unwanted files are not imported. But, some preferred content expressions can't be checked before files are imported, and trying to import with such an expression will fail. Tested this with scenarios including changing the preferred content expression and making sure merging the import didn't delete files that were no longer wanted. There was one minor inefficiency mentioned in the todo that I punted on.
This commit is contained in:
parent
ec11575d17
commit
e06feb7316
9 changed files with 130 additions and 50 deletions
|
@ -293,9 +293,13 @@ listContents remote tvar = do
|
|||
showStart' "list" (Just (Remote.name remote))
|
||||
next $ Remote.listImportableContents (Remote.importActions remote) >>= \case
|
||||
Nothing -> giveup $ "Unable to list contents of " ++ Remote.name remote
|
||||
Just importable -> next $ do
|
||||
liftIO $ atomically $ writeTVar tvar (Just importable)
|
||||
return True
|
||||
Just importable -> do
|
||||
importable' <- makeImportMatcher remote >>= \case
|
||||
Right matcher -> filterImportableContents remote matcher importable
|
||||
Left err -> giveup $ "Cannot import from " ++ Remote.name remote ++ " because of a problem with its configuration: " ++ err
|
||||
next $ do
|
||||
liftIO $ atomically $ writeTVar tvar (Just importable')
|
||||
return True
|
||||
|
||||
commitRemote :: Remote -> Branch -> RemoteTrackingBranch -> Maybe Sha -> ImportTreeConfig -> ImportCommitConfig -> ImportableContents Key -> CommandStart
|
||||
commitRemote remote branch tb trackingcommit importtreeconfig importcommitconfig importable = do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue