Skip to content

subdir REPL syntax does not work for git SSH URLs #2054

@fingolfin

Description

@fingolfin

In PR #1783 @GunnarFarneback added nice syntax for specifying subdirs when using the add or dev REPL commands: The URL is separate from the subdir name by a colon:

dev URL:subdir

When using a private GitHub repository, normally I use SSH URLs to access those repositories, which look like this: git@github.com:myorg/myrepo.git. Unfortunately, this does not mesh well with the subdir syntax above (my guess is that this is due to the second semicolon):

pkg> dev git@github.com:myorg/myrepo.git:MySubdir.jl
ERROR: ArgumentError: invalid version range: "github.com:myorg/myrepo.git:MySubdir.jl"
Stacktrace:
  [1] Pkg.Types.VersionRange(s::String)
    @ Pkg.Types ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/Pkg/src/versions.jl:138
  [2] Union{Pkg.Types.VersionRange, String, Pkg.REPLMode.Rev, Pkg.REPLMode.Subdir}(word::String)
    @ Pkg.REPLMode ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/argument_parsers.jl:66
  [3] parse_package(args::Vector{Pkg.REPLMode.QString}, options::Dict{Symbol, Any}; add_or_dev::Bool)
    @ Pkg.REPLMode ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/argument_parsers.jl:10
  [4] (::Pkg.REPLMode.var"#65#70")(x::Vector{Pkg.REPLMode.QString}, y::Dict{Symbol, Any})
    @ Pkg.REPLMode ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/command_declarations.jl:149
  [5] Pkg.REPLMode.Command(statement::Pkg.REPLMode.Statement)
    @ Pkg.REPLMode ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:365
  [6] iterate
    @ ./generator.jl:47 [inlined]
  [7] _collect(c::Vector{Pkg.REPLMode.Statement}, itr::Base.Generator{Vector{Pkg.REPLMode.Statement}, Type{Pkg.REPLMode.Command}}, #unused#::Base.EltypeUnknown, isz::Base.HasShape{1})
    @ Base ./array.jl:699
  [8] collect_similar
    @ ./array.jl:628 [inlined]
  [9] map
    @ ./abstractarray.jl:2233 [inlined]
 [10] do_cmd(repl::REPL.LineEditREPL, input::String; do_rethrow::Bool)
    @ Pkg.REPLMode ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:378
 [11] do_cmd
    @ ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:376 [inlined]
 [12] (::Pkg.REPLMode.var"#24#27"{REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
    @ Pkg.REPLMode ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:545
 [13] #invokelatest#2
    @ ./essentials.jl:709 [inlined]
 [14] invokelatest
    @ ./essentials.jl:708 [inlined]
 [15] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
    @ REPL.LineEdit ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/REPL/src/LineEdit.jl:2435
 [16] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
    @ REPL ~/Projekte/Julia/julia.master/usr/share/julia/stdlib/v1.6/REPL/src/REPL.jl:1124
 [17] (::REPL.var"#44#49"{REPL.LineEditREPL, REPL.REPLBackendRef})()
    @ REPL ./task.jl:392

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions