sync: Fix parsing of gcrypt::rsync:// urls that use a relative path
Such an url is not valid; parseURI will fail on it. But git-annex doesn't actually need to parse the url, because all it needs to do to support syncing with it is know that it's not a local path, and use git pull and push. (Note that there is no good reason for the user to use such an url. An absolute url is valid and I patched git-remote-gcrypt to support them years ago. Still, users gonna do anything that tools allow, and git-remote-gcrypt still supports them.) Sponsored-by: Jack Hill on Patreon
This commit is contained in:
parent
0e18bf029e
commit
a0badc5069
12 changed files with 45 additions and 22 deletions
|
@ -55,7 +55,15 @@ encryptedRemote baserepo = go
|
|||
-- allows them); need to de-escape any such
|
||||
-- to get back the path to the repository.
|
||||
l' = Network.URI.unEscapeString l
|
||||
in fromRemoteLocation l' baserepo
|
||||
-- gcrypt supports relative urls for rsync
|
||||
-- like "rsync://host:relative/path"
|
||||
-- but that does not parse as a valid url
|
||||
-- (while the absolute urls it supports are
|
||||
-- valid).
|
||||
-- In order to support it, force treating it as
|
||||
-- an url.
|
||||
knownurl = "rsync://" `isPrefixOf` l'
|
||||
in fromRemoteLocation l' knownurl baserepo
|
||||
| otherwise = notencrypted
|
||||
|
||||
notencrypted = giveup "not a gcrypt encrypted repository"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue