Cargo-edit: Limpiar la actualización del índice crates.io establece 'refs / remotes / origin /' en HEAD en lugar del maestro

Creado en 16 jul. 2020  ·  7Comentarios  ·  Fuente: killercup/cargo-edit

Ejecutar cualquier cargo add {crate} fallaría con:

Command failed due to unhandled error: reference 'refs/remotes/origin/master' not found; class=Reference (4); code=NotFound (-3)

Después de algunas depuraciones, encontré que el índice de carga tenía su 'refs / remotes / origin' establecido en HEAD lugar de master . Intenté reconstruir el índice ejecutando rm -rf ~/.cargo/registry/index/github.com-*/ y luego cargo add <any dependency> . Esto actualizó el índice, sin embargo ahora refs/remotes/origin/ todavía contiene HEAD de master .

Encontré que la línea que falló en esta biblioteca era: https://github.com/killercup/cargo-edit/blob/034f6efc6c9c86ce07a0ad01cfbb55198397e1ec/src/fetch.rs#L271
Confirmado que la ejecución de mv HEAD master solucionó temporalmente el problema.

Todos 7 comentarios

Gracias por el informe. Hmm, esto es extraño, no puedo reproducir el problema. ¿Ha intentado eliminar el índice y reconstruirlo con cargo check lugar de cargo add ?
Esto es lo que obtuve después de eso:

❯ tree ~/.cargo/registry/index/github.com-1ecc6299db9ec823/.git/refs/remotes/origin
~/.cargo/registry/index/github.com-1ecc6299db9ec823/.git/refs/remotes/origin
└── master

De hecho, también falló en el control de carga. Entonces reduje el tema. Esto funciona según lo previsto en estable, pero no de noche.

rustup show
Default host: x86_64-unknown-linux-gnu
rustup home:  /home/vagrant/.rustup

installed toolchains
--------------------

stable-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu (default)

active toolchain
----------------

nightly-x86_64-unknown-linux-gnu (default)
rustc 1.46.0-nightly (346aec9b0 2020-07-11)

Podría estar conectado a https://github.com/rust-lang/cargo/pull/8364

Estoy enfrentando el mismo problema en nightly .

-bash-5.0$ cargo add clap
Command failed due to unhandled error: reference 'refs/remotes/origin/master' not found; class=Reference (4); code=NotFound (-3)

¿Puedo revertir cargo-edit a una versión anterior como solución temporal?

@kavirajk no. La solución temporal es cambiar el nombre del archivo en ~/.cargo/registry/index/github.com-*/.git/refs/remotes/origin llamado HEAD a master

He pensado en algunas correcciones. Una sería permitir que cargo add use cualquiera de los orígenes. Creo que siempre esperamos que esto tenga 1 archivo en ese directorio.

+1, el mismo problema con OP, espero la nueva versión

¿Fue útil esta página
0 / 5 - 0 calificaciones