Sinatra: ゼロが埋め込まれたファイルモードが原因でクローン作成が失敗する

作成日 2017年06月07日  ·  7コメント  ·  ソース: sinatra/sinatra

プロジェクトのクローンを作成しようとしましたが、常に失敗します。 gitリポジトリの整合性に問題があるようです。

また、フォークして(動作し)、クローンを作成してみました(同じ問題)。

$> git clone [email protected]:sinatra/sinatra.git
Cloning into 'sinatra'...
remote: Counting objects: 19910, done.
error: object 218b8c8019a785b8c08c1dd64beff68af63cc1f9: zeroPaddedFilemode: contains zero-padded file modes
fatal: Error in object
fatal: index-pack failed
bug

最も参考になるコメント

fsck my life

全てのコメント7件

私はそれを試したところ、うまくいきました。

devbox@ubuntu-server-xenial:~/code$ git --version
git version 2.7.4
devbox@ubuntu-server-xenial:~/code$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:    16.04
Codename:   xenial
devbox@ubuntu-server-xenial:~/code$ git clone [email protected]:sinatra/sinatra.git
Cloning into 'sinatra'...
Host key fingerprint is SHA256:n6E5SYUpJ7E1IGOCspRoThXkTxdCKGlwmARLviWbg68
+---[RSA 2048]----+
| =+o...+=o..     |
|o++... *o .      |
|*.o.  *o.        |
|oo.  ..o.= .     |
|.+o. .. S =      |
|*=+ .  o = .     |
|OE .  . o        |
| o     .         |
|                 |
+----[SHA256]-----+
remote: Counting objects: 19910, done.
remote: Total 19910 (delta 0), reused 0 (delta 0), pack-reused 19910
Receiving objects: 100% (19910/19910), 5.92 MiB | 0 bytes/s, done.
Resolving deltas: 100% (10750/10750), done.
Checking connectivity... done.
devbox@ubuntu-server-xenial:~/code$ 

どのバージョンのgitを使用していますか?

macOSSierraではgit version 2.13.0

(もう一度試してみましたが、同じ問題です)

私の.gitconfigには、次の設定があります。

[transfer]
  fsckobjects = true

これをfalseに変更すると、リポジトリのクローンを作成できます。 git fsckすると、次の結果が得られます。

$> git fsck
Checking object directories: 100% (256/256), done.
warning in tree 218b8c8019a785b8c08c1dd64beff68af63cc1f9: zeroPaddedFilemode: contains zero-padded file modes
warning in tree 496479ab009c76d3d5e5b5eb8f05e478555b730a: zeroPaddedFilemode: contains zero-padded file modes
warning in tree 6720ac897243912cf384731c42a6ed4005bc384c: zeroPaddedFilemode: contains zero-padded file modes
Checking objects: 100% (19910/19910), done.

メンテナの1人がこれを修正することに興味がある場合、おそらくこれにはいくつかのヒントが含まれています。
https://git.wiki.kernel.org/index.php/GitFaq#How_to_fix_a_broken_repository.3F

はい、それは私にとっても腐敗しているように見えます。 gitがデフォルトでfsckobjectsにならないのはなぜですか...

fsck my life

これはhttps://github.com/sinatra/sinatra/issues/532(2012 !)で最初に発生したようです。

このStackOverflowの回答の手順に従って修正することができました。 ただし、壊れたSHAはかなり古いため、これはリポジトリの履歴の大部分を書き換えることになります。

また、SHAが変更されたため、多数の署名付きタグを署名なしに変換する必要がありました。

更新されたリポジトリは次のとおりです: https

私が取った手順は次のとおりです。

  • このリポジトリのクローンを作成します
  • 新しいリポジトリ用のディレクトリを作成し、 git init実行します
  • 古いリポジトリ内から:
git fast-export --all --signed-tags=warn-strip | (cd ../new-sinatra && git fast-import)

野生でのこれの他の例:

このバグの考えられる原因の1つは、かなり前に修正されたGritにあります。

このページは役に立ちましたか?
0 / 5 - 0 評価