経緯
このエラーはほんとに謎。
どこのサイトで見てみも対処に至らず、結局は自分流で対処したわけだがその内容が意味わからん。
原因不明のまま経験則による対処方法をまとめておく。
エラーメッセージ
$ git push
Counting objects: 20, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (20/20), 2.77 KiB | 944.00 KiB/s, done.
Total 20 (delta 17), reused 6 (delta 5)
error: remote unpack failed: unpack-objects abnormal exit
To https://www.xxx/yyy.git
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'https://www.xxx/yyy.git'
上記のエラーメッセージから下記サイトを参考にしたが対処に至らず。
git repack
による対処
https://ja.confluence.atlassian.com/bitbucketserverkb/error-unpack-failed-unpack-objects-abnormal-exit-779171795.html
リモート環境の権限修正
http://nu-pan.hatenablog.com/entry/20140413/1397352725
→そもそもリモート環境はアクセスできないので、試せてもいないのだが。。
対処方法
どうやら特定のファイルがプッシュできない。
→プッシュできないファイルを割り出す。
例えばファイルが10個あれば、次のようなことを再帰的に行う。
初めの5個だけコミット/プッシュ
→NG:5個の内初めの3つをコミット/プッシュ
→OK:残りの5個をコミット/プッシュ
で、たどり着いたファイルでは次のような修正をしていた。
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { BASE_URL, API_VERSION } from '../../app/shared/base.url';
import { Storage } from '@ionic/storage';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { BASE_URL } from '../../app/shared/base.url';
import { Storage } from '@ionic/storage';
変更点はAPI_VERSION を削除しただけ・・・・??
他のファイルはバンバンプッシュできたのに。
試しに次のように修正してみたらプッシュできた。
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { BASE_URL } from '../../app/shared/base.url';
import { Storage } from '@ionic/storage';
修正行の前に改行を入れてみたらプッシュできるという全く意味の分からない話。
これってリモート環境の権限は関係ある話なのかな・・・?
2020/9
今更ながらの考察として、改行コードが違ってたりしてたのかな・・・?
当時は、あまりGitに詳しくない(今もめちゃくちゃ詳しいわけではないが)ときだったので、改行コードとかの意識も薄い。
オフショアでやってもらった修正を、プッシュできないと言われてこの対応をしたのだが、オフショアと私でエディタやgitの設定が違う話はよくしていた。
オフショア側に改行コードは\nだよと言っても、何回か\r\nで来たことがある。
まぁ今となっては確かめる事もないのだけど。