avoid trying to export tree to proxied exporttree=yes remotes
This avoids a lot of ugly messages when syncing with such a remote. The export tree happens on the proxy side.
This commit is contained in:
parent
6d96734128
commit
55adbb6694
2 changed files with 18 additions and 10 deletions
|
@ -305,8 +305,7 @@ seek' o = startConcurrency transferStages $ do
|
||||||
-- repositories, in case that lets content
|
-- repositories, in case that lets content
|
||||||
-- be dropped from other repositories.
|
-- be dropped from other repositories.
|
||||||
exportedcontent <- withbranch $
|
exportedcontent <- withbranch $
|
||||||
seekExportContent (Just o)
|
seekExportContent (Just o) contentremotes
|
||||||
(filter isExport contentremotes)
|
|
||||||
|
|
||||||
-- Sync content with remotes, including
|
-- Sync content with remotes, including
|
||||||
-- importing from import remotes (since
|
-- importing from import remotes (since
|
||||||
|
@ -975,7 +974,13 @@ syncFile o ebloom rs af k = do
|
||||||
- Returns True if any file transfers were made.
|
- Returns True if any file transfers were made.
|
||||||
-}
|
-}
|
||||||
seekExportContent :: Maybe SyncOptions -> [Remote] -> CurrBranch -> Annex Bool
|
seekExportContent :: Maybe SyncOptions -> [Remote] -> CurrBranch -> Annex Bool
|
||||||
seekExportContent o rs (mcurrbranch, madj)
|
seekExportContent o rs currbranch =
|
||||||
|
seekExportContent' o (filter canexportcontent rs) currbranch
|
||||||
|
where
|
||||||
|
canexportcontent r = isExport r && not (isProxied r)
|
||||||
|
|
||||||
|
seekExportContent' :: Maybe SyncOptions -> [Remote] -> CurrBranch -> Annex Bool
|
||||||
|
seekExportContent' o rs (mcurrbranch, madj)
|
||||||
| null rs = return False
|
| null rs = return False
|
||||||
| otherwise = do
|
| otherwise = do
|
||||||
-- Propagate commits from the adjusted branch, so that
|
-- Propagate commits from the adjusted branch, so that
|
||||||
|
@ -1147,6 +1152,9 @@ isExport = exportTree . Remote.config
|
||||||
isImport :: Remote -> Bool
|
isImport :: Remote -> Bool
|
||||||
isImport = importTree . Remote.config
|
isImport = importTree . Remote.config
|
||||||
|
|
||||||
|
isProxied :: Remote -> Bool
|
||||||
|
isProxied = isJust . remoteAnnexProxiedBy . Remote.gitconfig
|
||||||
|
|
||||||
exportHasAnnexObjects :: Remote -> Bool
|
exportHasAnnexObjects :: Remote -> Bool
|
||||||
exportHasAnnexObjects = annexObjects . Remote.config
|
exportHasAnnexObjects = annexObjects . Remote.config
|
||||||
|
|
||||||
|
|
|
@ -33,13 +33,8 @@ Planned schedule of work:
|
||||||
* Working on `exportreeplus` branch which is groundwork for proxying to
|
* Working on `exportreeplus` branch which is groundwork for proxying to
|
||||||
exporttree=yes special remotes. Need to merge it to master.
|
exporttree=yes special remotes. Need to merge it to master.
|
||||||
|
|
||||||
* `git-annex sync --content` now updates a proxied exporttree=yes special
|
* `git-annex sync` hides output of git-annex post-retreive, which is a
|
||||||
remote! But, there are some messages like these that should be avoided:
|
problem when it's doing things that are expensive.
|
||||||
|
|
||||||
Not updating export to origin-d to reflect changes to the tree, because export tracking is not enabled. (Set remote.origin-d.annex-tracking-branch to enable it.)
|
|
||||||
export origin-d 1
|
|
||||||
export not supported
|
|
||||||
failed
|
|
||||||
|
|
||||||
* Handle cases where a single key is used by multiple files in the exported
|
* Handle cases where a single key is used by multiple files in the exported
|
||||||
tree. Need to download from the special remote in order to export
|
tree. Need to download from the special remote in order to export
|
||||||
|
@ -47,6 +42,11 @@ Planned schedule of work:
|
||||||
`git-annex push`. When using first `git push` followed by
|
`git-annex push`. When using first `git push` followed by
|
||||||
`git-annex copy --to` the proxied remote, the received key is stored
|
`git-annex copy --to` the proxied remote, the received key is stored
|
||||||
to all export locations.)
|
to all export locations.)
|
||||||
|
|
||||||
|
* Implement `git-annex export treeish --to=foo --from=bar`, which
|
||||||
|
gets from bar as needed to send to foo. Make post-retrieve use
|
||||||
|
`--to=r --from=r` to handle the multiple files case.
|
||||||
|
|
||||||
* Handle case where the special remote does not support renameExport.
|
* Handle case where the special remote does not support renameExport.
|
||||||
Each key will need to be downloaded from it in order to export the key
|
Each key will need to be downloaded from it in order to export the key
|
||||||
back to it, if the proxy is to support such a remote.
|
back to it, if the proxy is to support such a remote.
|
||||||
|
|
Loading…
Reference in a new issue