Cargo-edit: Limpe a atualização dos conjuntos de índice crates.io 'refs / remotes / origin /' para HEAD em vez do master

Criado em 16 jul. 2020  ·  7Comentários  ·  Fonte: killercup/cargo-edit

Executar qualquer cargo add {crate} falharia com:

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

Após alguma depuração, descobri que o índice de carga tinha seu 'refs / remotes / origin' definido como HEAD vez de master . Tentei reconstruir o índice executando rm -rf ~/.cargo/registry/index/github.com-*/ e, em seguida, cargo add <any dependency> . Isso atualizou o índice, porém agora refs/remotes/origin/ ainda contém HEAD vez de master .

Descobriu que a linha em que falhou neste lib era: https://github.com/killercup/cargo-edit/blob/034f6efc6c9c86ce07a0ad01cfbb55198397e1ec/src/fetch.rs#L271
Confirmado que a execução de mv HEAD master corrigiu temporariamente o problema.

Todos 7 comentários

Obrigado pelo relatório. Hmm, isso é estranho, não consigo reproduzir o problema. Você já tentou remover o índice e reconstruí-lo com cargo check vez de cargo add ?
Isso é o que eu ganhei depois disso:

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

De fato, falhou na verificação de carga também. Assim, reduzi a questão. Isso funciona como planejado no Estável, mas não à noite.

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)

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

Estou enfrentando o mesmo problema em 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)

posso reverter cargo-edit para uma versão anterior como uma solução temporária?

@kavirajk no. A solução temporária é renomear o arquivo em ~/.cargo/registry/index/github.com-*/.git/refs/remotes/origin chamado HEAD para master

Pensei em algumas correções. Uma delas seria permitir que cargo add usasse qualquer uma das origens. Acho que sempre esperamos que isso tenha 1 arquivo nesse diretório.

+1, mesmo problema com OP, espero pela nova versão

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

killercup picture killercup  ·  5Comentários

Dowwie picture Dowwie  ·  7Comentários

killercup picture killercup  ·  19Comentários

Dowwie picture Dowwie  ·  5Comentários

adeschamps picture adeschamps  ·  5Comentários