2008-10-17 3 views
13

the git mirrorthe watir project입니다. 몇 주 전에 몇 사람이 첫 번째 자식 기반 패치를 제출할 준비가되었습니다. 불행히도, 우리는 프로젝트의 멀티 플랫폼 특성 때문에 라인 결말 (CRLF 대 LF 등)에 관한 몇 가지 문제를 접했습니다.git svn rebase : 불완전한 데이터 : 델타 소스가 예기치 않게 종료했습니다.

the autocrlf option ('입력')을 설정하고 - 하드웨어 재설정을 시도했습니다.

Incomplete data: Delta source ended unexpectedly 

내가 무엇을해야하는지에 대한 주위에 인터넷 검색을하지만, 심지어는 .git/config에있는 autocrlf 설정을 제거 시도했다 : 그러나 며칠 후, 매일 업데이트 (자식 svn의 REBASE)이 오류를 분출한다 도움이되지 않았다. 나는 작업 카피가 손상된 것을 두려워하지만, 그것이 회복 될 수 없기를 희망한다.

분명히 가능한 조치는 svn에서 다시 가져 와서 새 미러를 시작하는 것입니다.하지만 현재 watir-mirror가 이미 갈래로되어 있기 때문에 우리가하지 않아도되기를 바랍니다. 포크에 새 코드를 개발했습니다.

미리 도움을 청하십시오.

+0

이 문제가 발생 했습니까? 우리는 현재 같은 문제가있는 것 같습니다. (그리고 마지막으로 git-svn 체크 아웃을하는 데 3 일이 걸렸으므로 피할 수 있기를 바랍니다.) – pvgoddijn

+0

@pvgoddijn 죄송합니다. 해결 방법을 찾지 못했습니다. 문제는 공식적으로 github로 이동하고 svn을 버렸기 때문에 사라졌습니다. – Pistos

답변

5

git-svn은 svn 저장소에서 같은 매개 변수를 사용하여 복제하거나 가져올 때 항상 똑같은 커밋을 생성합니다 (시도해보십시오 : 더미 저장소 만들기, git-svn으로 복제, 커밋 추가, 다시 복제하고 첫 번째 복사본을 가져오고, 결과 커밋은 정확히 동일한 해시를 가져야합니다.

이것은 흥미로운 옵션입니다. 동일한 매개 변수로 별도의 신선한 거울을 시작하고 두 가지를 비교하여 두 가지가 어느 정도 다른지 확인하십시오 (또는 두 가지가 서로 다르기 때문에 해시를 비교할 수 있습니다. 문제). 그들이 동일하다면 (또는 분기가 커지면 커밋을 결정하지 않아도됩니다), 포크를 깨지 않고 신선한 거울을 사용할 수 있습니다 (또는 몇 가지 커밋 커밋을 무시하기로 결정한 경우).

+0

해시가 그대로 유지됩니다. 자, 나는 커밋 델타의 실제 바이트를 git 해싱한다는 사실을 알고 있었거나 기억해야했다. 불행히도, 나는 CRLF <-> LF 문제를 두 번째로 극복하고자하는 차이점을 보게 될 수도 있습니다. 그래도 다시 가져 오기를 시도 할 것입니다. 감사! – Pistos

+0

알았어, CesarB, 나는 svn 소스에서 재 입력하려고했다. svn init을하고, autocrlf를 입력하고, svn fetch 명령을 사용한다. - 그러나 나는 같은 오류 ("델타 소스 ...")를 중간에 얻는다. 가져 오기 다른 제안? – Pistos

+0

초기 미러처럼 autocrlf를 사용하지 않고 플레이 해보십시오. 그 오류가 계속 발생한다면, 나는 그것이 svn 또는 git-svn이 고장 났다고 의심 할 것이다. – CesarB

16

brlcad svn 저장소에서 자식 저장소를 만들려고 시도 할 때 이와 동일한 문제가있었습니다. 나는 git svn reset --r XXXXX을 수행함으로써 그것을 해결했다. 여기서 XXXXX는 원래 오류를 생성 한 버전보다 약 50 개 리비전으로 설정되었다.

단일 버전을 스테핑하여 오류를 해결하지 못했습니다. 프로세스의 일부로 HEAD 정의되지 않은 오류에 대한 오류 메시지가 나타납니다. 이 문제를 해결하기 위해 나는을 사용하여 원하는 개정판에 해당하는 해시를 결정한 다음 git checkout을 확인했습니다. 이 후 HEAD에 관한 오류는 사라지고 git svn reset -r XXXXX이 작동했습니다.

+2

고마워요. 이것은 비슷한 문제에 도움이됩니다. 나는 단지 현재 개정 이전에 개정 번호를 하나의 개정으로 설정했습니다. – Lei

+0

감사합니다. 가져 오는 중에이 문제가 발생하여 해결되었습니다. – Schwern

+0

마찬가지로, 대단히 감사합니다. – Christian

0

나는 똑같은 문제가 있었고 Todd의 경우와 마찬가지로 이전 버전으로 이동하여 문제가 해결되었습니다.

해결책은 문제가있는 파일의 이전 버전을 두 단계로 이동하는 것입니다.

+2

문제가있는 파일을 식별하는 방법은 무엇입니까? – anony

0

비슷한 문제가 발생했습니다. 내가 svn repo의 부분 복제를 할 때 발생합니다. 나는 git-svn이 dcommit을 수행 할 때 파일의 원본 소스를 찾을 수 없다고 생각합니다. 나는 완전히 최신 상태 (git svn rebase)로 설정 한 다음 git svn set-tree를 사용하여 Subversion에 특정 변경 사항을 적용하여 해결했습니다. 커밋 할 변경 사항이 많으면 순서대로 각 변경 사항을 수동으로 커밋해야하므로 고통이 될 수 있지만 푸시 할 커밋이 하나 또는 두 개있는 경우 제대로 작동합니다.

4

나는 git svn fetch과 동일한 문제가 있었지만, 리셋 방법은 나에게 도움이되지 않았습니다. 아마도 손상이 언제 발생했는지 모르기 때문일 것입니다. 마침내 나를 위해 일한 것이 있습니다. 나는 git svn fetch --ignore-paths="/branches/"을 오류없이 실행했다.그 후, 나는 다시 한 번 내 git svn fetch을했고 이번에는 효과가있었습니다.

+0

리셋 방식이 저에게 효과적이지 않았습니다. 감사! – yhager

+0

@yhager - 오신 것을 환영합니다! –

+0

리셋 방식이 나에게도 효과가 없었습니다. 하지만 나는 가지를 무시하고 싶지 않습니다. 어떻게해야합니까? – anony

관련 문제