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.
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
La actualización del índice se realiza aquí:
https://github.com/killercup/cargo-edit/blob/034f6efc6c9c86ce07a0ad01cfbb55198397e1ec/src/fetch.rs#L126 -L159
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