2

gitHub からの非常に奇妙な動作があります。2日前まで問題なくgitHubから引っ張ってきました。クラスのローカル コピーは、以下のトレース スタックで証明されているように、共同作業者のマシン上にあるように見えます。

Exception fault: ArgumentError: error must be either Class or Matcher at global/org.hamcrest.core::throws()[E:\hudson\jobs\hamcrest-as3\workspace\hamcrest\src\org\hamcrest\core\throws .as:34]

at modules.channelSelector.model.proxy::CS_SkinProxy/spriteLoadCompleteHandler([/Users/MY_COLLABORATOR/His file path/CS_SkinProxy.as:85]
at org.osflash.signals::Slot/execute()[/Users/ME/My file path/Slot.as:88]
at org.osflash.signals::OnceSignal/dispatch()[/Users/ME/My file path/OnceSignal.as:132]
at sem.bitmap::BitmapUtil/completeHandler()[/Users/ME/My file path/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.greensock.loading.core::LoaderCore/_completeHandler()[/Users/ME/My file path/LoaderCore.as:399]
at com.greensock.loading::LoaderMax/_loadNext()[/Users/ME/My file path/LoaderMax.as:819]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()

私たちはすべてを試しました。クラスへの変更をコミットしてプッシュします。git rm -file --cached -f、ファイルの削除などを介して gitHub ソースから問題のあるクラスを削除します。この削除をコミットしてから、再度プルします。クラスが GitHub ソースの現在のリポジトリに含まれていない場合に、クラスを再構築します。クラスが自分のマシン上にないことを示す同じスタック トレースがすべて表示されます。

この CS_SkinProxy クラスに対するコードの変更も、このクラスの外部にある他の更新が期待どおりに更新されているにもかかわらず、更新されていません。基本的に、間違ったステートメントにジャンプする新しい switch case ステートメントがあり、Hamcrest エラーが発生します。これはすべて FDT と IntelliJ で行われます。どんな助けでも大歓迎です。

イアン

4

1 に答える 1

1

同僚が誤ってバイナリのデバッグビルドをコミットしたときにも、同様のことが起こりました。デバッグビルドには、多くの場合、マシン固有のファイルの場所への参照が含まれています。

さらに悪いことに、一度コミットされると、.gitignoreファイル内であってもデバッグバイナリは無視されません。つまり、プルすると、再構築された後でも、バイナリを簡単に元に戻すことができます。

これを修正するには、実際に問題がある場合は、バイナリをリポジトリ履歴から削除する必要があります。これについては、この質問で説明します。機密ファイルとそのコミットをgithistoryから削除します

脚注に関しては、ファイルと一緒にクラス名を変更し、それへのすべての参照はほとんど効果がありません。デバッグバイナリはアセンブリレベルで構築され、それに含まれるすべてのファイルをコンパイルします。これによりバイナリファイルが変更されますが、名前は通常アセンブリレベルでも決定されるため、名前は変更されません。

于 2013-01-14T03:55:30.347 に答える