avoid git syncing with instantiate proxied remotes
These remotes have no url configured, so git pull and push will fail. git-annex sync --content etc can still sync with them otherwise. Also, avoid git syncing twice with the same url. This is for cases where a proxied remote has been manually configured and so does have a url. Or perhaps proxied remotes will get configured like that automatically later.
This commit is contained in:
parent
a986a20034
commit
46a1fcb3ea
3 changed files with 8 additions and 7 deletions
|
@ -268,7 +268,8 @@ seek' o = startConcurrency transferStages $ do
|
||||||
remotes <- syncRemotes (syncWith o)
|
remotes <- syncRemotes (syncWith o)
|
||||||
warnSyncContentTransition o remotes
|
warnSyncContentTransition o remotes
|
||||||
-- Remotes that git can push to and pull from.
|
-- Remotes that git can push to and pull from.
|
||||||
let gitremotes = filter Remote.gitSyncableRemote remotes
|
let gitremotes = nubBy sameGitRepo $
|
||||||
|
filter Remote.gitSyncableRemote remotes
|
||||||
-- Remotes that contain annex object content.
|
-- Remotes that contain annex object content.
|
||||||
contentremotes <- filter (\r -> Remote.uuid r /= NoUUID)
|
contentremotes <- filter (\r -> Remote.uuid r /= NoUUID)
|
||||||
<$> filterM (not <$$> liftIO . getDynamicConfig . remoteAnnexIgnore . Remote.gitconfig) remotes
|
<$> filterM (not <$$> liftIO . getDynamicConfig . remoteAnnexIgnore . Remote.gitconfig) remotes
|
||||||
|
@ -1158,3 +1159,7 @@ splitRemoteAnnexTrackingBranchSubdir tb = (branch, subdir)
|
||||||
subdir = if S.null p
|
subdir = if S.null p
|
||||||
then Nothing
|
then Nothing
|
||||||
else Just (asTopFilePath p)
|
else Just (asTopFilePath p)
|
||||||
|
|
||||||
|
sameGitRepo :: Remote -> Remote -> Bool
|
||||||
|
sameGitRepo x y =
|
||||||
|
remoteUrl (Remote.gitconfig x) == remoteUrl (Remote.gitconfig y)
|
||||||
|
|
|
@ -451,7 +451,8 @@ claimingUrl' remotefilter url = do
|
||||||
- with an annex:: url configured? -}
|
- with an annex:: url configured? -}
|
||||||
gitSyncableRemote :: Remote -> Bool
|
gitSyncableRemote :: Remote -> Bool
|
||||||
gitSyncableRemote r
|
gitSyncableRemote r
|
||||||
| gitSyncableRemoteType (remotetype r) = True
|
| gitSyncableRemoteType (remotetype r)
|
||||||
|
&& isJust (remoteUrl (gitconfig r)) = True
|
||||||
| otherwise = case remoteUrl (gitconfig r) of
|
| otherwise = case remoteUrl (gitconfig r) of
|
||||||
Just u | "annex::" `isPrefixOf` u -> True
|
Just u | "annex::" `isPrefixOf` u -> True
|
||||||
_ -> False
|
_ -> False
|
||||||
|
|
|
@ -44,11 +44,6 @@ For June's work on [[design/passthrough_proxy]], implementation plan:
|
||||||
* Consider getting instantiated remotes into git remote list.
|
* Consider getting instantiated remotes into git remote list.
|
||||||
See design.
|
See design.
|
||||||
|
|
||||||
* Make commands like `git-annex sync` not git push/pull to proxied remotes.
|
|
||||||
That doesn't work because they have no url. Or, if proxied remotes are in
|
|
||||||
git remote list, it is unncessary work because it's the same url as the
|
|
||||||
proxy.
|
|
||||||
|
|
||||||
* Implement single upload with fanout to proxied remotes.
|
* Implement single upload with fanout to proxied remotes.
|
||||||
|
|
||||||
* Implement clusters.
|
* Implement clusters.
|
||||||
|
|
Loading…
Reference in a new issue