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:
Joey Hess 2023-03-23 15:19:04 -04:00
parent 0e18bf029e
commit a0badc5069
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
12 changed files with 45 additions and 22 deletions

View file

@ -186,12 +186,12 @@ repoList reposelector
-- Skip gcrypt repos on removable drives;
-- handled separately.
case fromProposedAccepted <$> getconfig (Accepted "gitrepo") of
Just rr | remoteLocationIsUrl (parseRemoteLocation rr g) ->
Just rr | remoteLocationIsUrl (parseRemoteLocation rr False g) ->
val True EnableSshGCryptR
_ -> Nothing
Just "git" ->
case fromProposedAccepted <$> getconfig (Accepted "location") of
Just loc | remoteLocationIsSshUrl (parseRemoteLocation loc g) ->
Just loc | remoteLocationIsSshUrl (parseRemoteLocation loc False g) ->
val True EnableSshGitRemoteR
_ -> Nothing
_ -> Nothing