Skip to content

gix clone https://tangled.org/... fails due to redirect but works fine with git #2685

Description

Current behavior 😯

Cloning this repo fails in gix:

❯ gix clone https://tangled.org/me.webbeef.org/beaver
Error: Redirect url "https://knot1.tangled.sh/did:plc:akzwsaqszkrfc7j2c3r2wlp2/info/refs?service=git-upload-pack" could not be reconciled with original url https://tangled.org/me.webbeef.org/beaver/info/refs?service=git-upload-pack as they don't share authority or the same suffix

Expected behavior 🤔

There's probably a good reason for the extra checks in Gix, I'm not sure what the desired fix is:

  • Improve the error message to explain the threat model and suggest a workaround ?
  • Improve the gix heuristic to remove this false positive ?
  • Decide that heuristics will always fail and just warn about redirects like git does ?
  • Assert that gix is right and this redirect really shouldn't be followed ?

Git behavior

Original git issues a warning but goes ahead with cloning:

❯ git clone https://tangled.org/me.webbeef.org/beaver
Cloning into 'beaver'...
warning: redirecting to https://knot1.tangled.sh/did:plc:akzwsaqszkrfc7j2c3r2wlp2/
remote: Enumerating objects: 4854, done.
remote: Counting objects: 100% (4854/4854), done.
remote: Compressing objects: 100% (4048/4048), done.
remote: Total 4854 (delta 3208), reused 1002 (delta 531), pack-reused 0 (from 0)
Receiving objects: 100% (4854/4854), 16.58 MiB | 25.37 MiB/s, done.
Resolving deltas: 100% (3208/3208), done.

Steps to reproduce 🕹

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    acknowledgedan issue is accepted as shortcoming to be fixed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions