2012-12-13 2 views
2

gitHub에서 매우 이상한 동작이 나타납니다. 우리는 2 일 전까지 gitHub에서 아무런 문제가 없었습니다. 아래의 추적 스택에서 볼 수 있듯이 클래스의 로컬 복사본이 내 공동 작업자 컴퓨터에서 비롯된 것으로 보입니다.GitHub 소스의 파일 위치가 잘못보고되었습니다.

예외 오류 : ArgumentError : [: \ throws.as 핵심 \ \ 허드슨 \ 작업 \ hamcrest-AS3의 \ 작업 공간 \ hamcrest \ SRC \ 조직 \ hamcrest : 34 E]

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 클래스에 대한 모든 코드 변경 사항은이 클래스 외부의 다른 업데이트가 예상대로 업데이트된다는 사실에도 불구하고 업데이트되지 않습니다. 기본적으로 잘못된 문장으로 건너 뛰고 Hamcrest 오류를 일으키는 새로운 switch case 문이 있습니다. 이 모든 것은 FDT와 IntelliJ에서 발생합니다. 어떤 도움이라도 대단히 감사하겠습니다.

이안

+0

다른 이름으로 클래스를 리팩터링하고 모든 참조 등을 업데이트 할 때도 문제의 각주로서 여전히 이전 파일이 공동 작업자 파일 경로에서 사용되고 있다고 생각합니다. 파일에 대한 참조는 분명히 내 통제 범위를 넘어 어딘가에 캐시됩니다. –

답변

1

나는 동료가 실수 바이너리의 디버그 빌드를 저지른 때 비슷한 일이 발생 했어. 디버그 빌드는 종종 컴퓨터 특정 파일 위치에 대한 참조를 포함합니다.

커밋 된 후에는 .gitignore 파일에도 디버그 바이너리가 무시되지 않습니다. 즉, 다시 작성한 후에도 당겨서 쉽게 이진을 되돌릴 수 있습니다.

이 문제를 해결하려면 저장소 문제에서 이진 파일을 제거해야합니다 (이 질문은 Remove sensitive files and their commits from git history).

각주와 관련하여 클래스 이름을 파일 및 모든 참조와 함께 변경하면 거의 영향을 미치지 않습니다. 디버그 바이너리는 어셈블리 수준에서 빌드되며 포함 된 모든 파일을 컴파일합니다. 이것은 일반적으로 어셈블리 레벨에서 결정되기 때문에 이진 파일을 변경하지만 이름은 변경하지 않습니다.