Cargo-edit: Bersihkan memperbarui set indeks crates.io 'refs/remotes/Origin/' ke HEAD alih-alih master

Dibuat pada 16 Jul 2020  ·  7Komentar  ·  Sumber: killercup/cargo-edit

Menjalankan cargo add {crate} akan gagal dengan:

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

Setelah beberapa debugging, saya menemukan bahwa indeks kargo memiliki 'refs/remotes/Origin' yang disetel ke HEAD alih-alih master . Saya mencoba membangun kembali indeks dengan menjalankan rm -rf ~/.cargo/registry/index/github.com-*/ dan kemudian cargo add <any dependency> . Ini memperbarui indeks, namun sekarang refs/remotes/origin/ masih berisi HEAD bukannya master .

Menemukan baris yang gagal di lib ini adalah: https://github.com/killercup/cargo-edit/blob/034f6efc6c9c86ce07a0ad01cfbb55198397e1ec/src/fetch.rs#L271
Mengonfirmasi bahwa menjalankan mv HEAD master untuk sementara memperbaiki masalah.

Semua 7 komentar

Terima kasih atas laporannya. Hmm, ini aneh, saya tidak dapat mereproduksi masalahnya. Sudahkah Anda mencoba menghapus indeks dan membangunnya kembali dengan cargo check alih-alih cargo add ?
Inilah yang saya dapatkan setelah itu:

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

Memang gagal pada pemeriksaan kargo juga. Bagaimana saya mempersempit masalah. Ini berfungsi sebagaimana dimaksud pada Stable, tetapi tidak pada malam hari.

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)

Mungkin terhubung ke https://github.com/rust-lang/cargo/pull/8364

Saya menghadapi masalah yang sama pada 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)

dapatkah saya mengembalikan cargo-edit ke versi yang lebih lama sebagai solusi sementara?

@kaviraj no. Solusi sementara adalah mengganti nama file di ~/.cargo/registry/index/github.com-*/.git/refs/remotes/origin disebut HEAD menjadi master

Telah memikirkan beberapa perbaikan. Salah satunya adalah mengizinkan cargo add untuk menggunakan salah satu asal. Pikir kami selalu mengharapkan ini memiliki 1 file di direktori itu.

+1, Masalah yang sama dengan OP, berharap untuk versi baru

Apakah halaman ini membantu?
0 / 5 - 0 peringkat