Underscore: repo gagal git fsck

Dibuat pada 31 Okt 2020  ·  5Komentar  ·  Sumber: jashkenas/underscore

teguran:

$ git config --system receive.fsckObjects true
$ git clone [email protected]:jashkenas/underscore.git  # or `git submodule add -- [email protected]:jashkenas/underscore.git`
Cloning into 'underscore'...
remote: Enumerating objects: 215, done.
remote: Counting objects: 100% (215/215), done.
remote: Compressing objects: 100% (130/130), done.
error: object b252cd0cf660db8fea1a40ae7d3ba0e34a41ffd3: zeroPaddedFilemode: contains zero-padded file modes
fatal: fsck error in packed object
bug

Semua 5 komentar

@zackschuster Terima kasih telah menghubungi kami.

Saya harus mencari informasi lebih lanjut secara online, karena saya belum pernah mendengar tentang git fsck atau kesalahan khusus ini sebelumnya. Saya akhirnya menemukan di https://github.com/pallets/flask/issues/2029 bahwa ada dua solusi yang mungkin untuk jenis masalah ini. Yang pertama benar-benar menyelesaikan masalah dengan membangun kembali repositori, tetapi terlalu merusak karena semua hash setelah objek yang salah akan berubah. Langkah kedua adalah menambahkan beberapa dokumentasi untuk memperingatkan orang-orang tentang masalah tersebut dan untuk menginstruksikan mereka cara mengatasinya (yang tampaknya bisa dilakukan dengan sempurna). Hanya solusi terakhir yang dapat digunakan untuk repo ini.

Semua ini tampaknya agak diperdebatkan bagi saya, karena saya tidak dapat mereproduksi kesalahan tersebut. Saya mencoba menjalankan perintah yang tepat dari posting pembuka menggunakan Git 2.26.2, kecuali dengan sudo di depan perintah pertama karena ini diperlukan untuk mengubah pengaturan seluruh sistem. Repo baru saja di-clone tanpa error. Saya juga tidak dapat menemukan objek apa pun dengan hash b252cd0cf660db8fea1a40ae7d3ba0e34a41ffd3.

@zackschuster Harap periksa kembali bahwa masalah yang Anda hadapi bukanlah akibat dari transfer jaringan yang salah, pembacaan disk yang salah, atau bug di beberapa versi Git tertentu. Saya akan menutup masalah ini sekarang; jika Anda menemukan langkah tambahan yang dapat saya lakukan untuk mereproduksi kesalahan, atau jika orang lain dapat mengonfirmasi bahwa ini benar-benar masalah dengan repo Underscore, tentu saja kami akan membukanya kembali.

@jgonggrijp Saya menggunakan git 2.29.2 di macOS, dikompilasi dengan cara standar dengan autoconf & make. permintaan maaf atas kesalahan pada perintah konsol; Sejujurnya, saya telah menerima.fsckObjects dari $HOME/.gitconfig .

Saya tidak yakin bagaimana cara melacak kesalahan gumpalan di pihak saya, tetapi saya akan mencoba mendapatkan detail lebih lanjut: smile:

@jgonggrijp saya menemukan beberapa info. catatan:

  1. menjalankan git clone --config transfer.fsckobjects=false [email protected]:jashkenas/underscore.git menghindari kesalahan (perhatikan transfer.fsckobjects ; saya memiliki pengaturan yang salah dalam laporan asli saya. maaf!)
  2. selanjutnya, menjalankan git fsck di repo (menggunakan v2.29.2 ) mengungkapkan dua kesalahan zeroPaddedFilemode
  3. git cat-file -p menampilkan daftar file, yang menunjukkan bahwa mereka melakukan kesalahan; git cat-file -t menandai mereka sebagai tipe tree . git show output adalah versi kurang informatif dari git cat-file -p . git log tidak menghasilkan apa-apa.

saya telah menyertakan output konsol untuk referensi:

~/Source
$ git clone --config transfer.fsckobjects=false [email protected]:jashkenas/underscore.git
Cloning into 'underscore'...
remote: Enumerating objects: 215, done.
remote: Counting objects: 100% (215/215), done.
remote: Compressing objects: 100% (130/130), done.
remote: Total 10434 (delta 185), reused 101 (delta 85), pack-reused 10219
Receiving objects: 100% (10434/10434), 5.61 MiB | 9.21 MiB/s, done.
Resolving deltas: 100% (6770/6770), done.

~/Source
$ cd underscore 

~/Source/underscore
$ git fsck
Checking object directories: 100% (256/256), done.
warning in tree b252cd0cf660db8fea1a40ae7d3ba0e34a41ffd3: zeroPaddedFilemode: contains zero-padded file modes
warning in tree 8a654ec549a230dcab28e54c6e53c460cb9e190d: zeroPaddedFilemode: contains zero-padded file modes
Checking objects: 100% (10434/10434), done.

~/Source/underscore
$ git cat-file -p b252cd0cf660db8fea1a40ae7d3ba0e34a41ffd3
100644 blob d8cef485ec7309b938b4c3bc19171458e9139811    LICENSE
100644 blob 333b13f45b62427fd0840c77bb55bfc8fb96be6b    README
100644 blob 721c294b3ddb1d3e6ed35a7d9336e162aab01bb9    Rakefile
100644 blob bdaef73ca2ca82b90d37cec4b9c38606b440d619    index.html
100644 blob 6771de07ecd088853df1376f3693e81584ec2560    package.json
040000 tree d0a277f748b309f3d26e13d1cb5133ff003c468d    test
100644 blob 7cfbf993705f83e7fde17e9745b4187f7a4047b2    underscore-min.js
100644 blob 625411233e487b5cd8da1a32a69e5693b1862c09    underscore.js

~/Source/underscore
$ git cat-file -p 8a654ec549a230dcab28e54c6e53c460cb9e190d
100644 blob 9644b34c3f5c16753d1061497aa7aab426e6c896    LICENSE
100644 blob e41015cd7cc04a940ac4e7a451aeb0b0b384c3a3    README
100644 blob 6af14bb6d570698990d30aa0b46e398ae3fd48b1    Rakefile
100644 blob 1a03be19fc8ddf61b113f71c19d6892fb74ff4f5    index.html
100644 blob 2cbc8128d9db1feabc44a3be14c504e40b6b7e2e    package.json
040000 tree fae9dcb01827d13b2b5fbd9afab07489b249dab8    test
100644 blob 2c8b499882c2a5d662ea35c80ec7ea0fa111814f    underscore-min.js
100644 blob 42bf31a27545d0d5460c655d13ce9bbf76e540b3    underscore.js

~/Source/underscore
$ git cat-file -t b252cd0cf660db8fea1a40ae7d3ba0e34a41ffd3
tree

~/Source/underscore
$ git cat-file -t 8a654ec549a230dcab28e54c6e53c460cb9e190d
tree

~/Source/underscore
$ git show b252cd0cf660db8fea1a40ae7d3ba0e34a41ffd3
tree b252cd0cf660db8fea1a40ae7d3ba0e34a41ffd3

LICENSE
README
Rakefile
index.html
package.json
test/
underscore-min.js
underscore.js

~/Source/underscore
$ git show 8a654ec549a230dcab28e54c6e53c460cb9e190d
tree 8a654ec549a230dcab28e54c6e53c460cb9e190d

LICENSE
README
Rakefile
index.html
package.json
test/
underscore-min.js
underscore.js

~/Source/underscore
$ git log b252cd0cf660db8fea1a40ae7d3ba0e34a41ffd3

~/Source/underscore
$ git log 8a654ec549a230dcab28e54c6e53c460cb9e190d

~/Source/underscore
$ 

Sekarang saya dapat mereproduksi masalah tersebut. Terima kasih telah gigih, @zackschuster.

Jadi kita mungkin harus mendokumentasikan fakta bahwa masalah ini ada dan menjelaskan bagaimana orang dapat mengatasinya. Mungkin CLONING.md akan menjadi tempat yang tepat untuk dokumentasi semacam itu.

Atau, mungkin entah bagaimana kita bisa mengetahui komit mana yang mereferensikan pohon ini. Jika kita sangat beruntung, mungkin hanya di beberapa cabang samping yang tidak penting yang dapat kita hapus (atau bangun kembali). Kami mungkin harus mencoba ini dulu.

Tolong selamat datang.

saya mencoba menggunakan git fast-export + git fast-import (menggunakan jawaban SO ini ) dan memperbaiki repo, tetapi mengubah hash. flask mencantumkan instruksi zeroPaddedFilemode mereka di bawah kontribusi , jadi menyalin teks mereka ke CONTRIBUTING.md bisa menjadi opsi.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat