GitHub源误报了其文件位置

时间:2012-12-13 21:14:40

标签: git compiler-errors cache-control

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

异常错误:ArgumentError:错误必须是Class或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上。任何帮助将不胜感激。

伊恩

1 个答案:

答案 0 :(得分:1)

当同事无意中提交二进制文件的调试版本时,我发生了类似的事情。调试版本通常包含对机器特定文件位置的引用。

更糟糕的是,一旦提交,即使在.gitignore文件中也不会忽略调试二进制文件。这意味着即使在重建后,拉动也可以轻松地将二进制文件放回去。

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

关于脚注,更改类名和文件以及对它的所有引用几乎没有效果。调试二进制文件在程序集级别构建,并且是它包含的所有文件的编译。这会改变二进制文件,但不会更改它的名称,因为这通常也是在汇编级别确定的。