2

我们有来自 gitHub 的非常奇怪的行为。直到两天前,我们一直从 gitHub 拉出没问题。一个类的本地副本似乎起源于我的协作者机器,如下面的跟踪堆栈所示:

异常错误:ArgumentError:错误必须是 global/org.hamcrest.core::throws()[E:\hudson\jobs\hamcrest-as3\workspace\hamcrest\src\org\hamcrest\core\throws 的 Class 或 Matcher .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文件中也不会被忽略。这意味着即使在重建后,拉动也可以轻松地将二进制文件放回原处。

要解决此问题,如果确实是问题,则需要从存储库历史记录中删除二进制文件,该问题在以下问题中进行了讨论:Remove sensitive files and their commits from git history

关于您的脚注,更改类名以及文件以及对它的所有引用都不会产生什么影响。调试二进制文件是在程序集级别构建的,是它包含的所有文件的编译。这将更改二进制文件,但不会更改其名称,因为这通常也是在程序集级别确定的。

于 2013-01-14T03:55:30.347 回答