2011-01-12 2 views
7

내가 git svn dcommit을 할 노력하고있어, 그러나, 하나의 디렉토리를 중지 그러므로 나를 계속 실패하고 내 커밋이 오류가 계속 :git svn dcommit에서 "file not found"를 고치는 방법?

Filesystem has no item: File not found: transaction '43999-6', path '/path/to/folder' at /usr/local/git/libexec/git-core/git-svn line 572

내가 다시 폴더를 추가하는 시도를하지만 난 얻을 계속 그 오류. 트리를 건너 뛰기 위해 커밋을 제거 할 수 있습니까? 여기에서 뭘해야할지 모르겠다.

편집
의 일부 완전히 내 질문에 대답하지 않는 다음,하지만 그들은 올바른 방향으로 것 같다 :

마지막 문제는 내가 원했던 것처럼 보이지만 내 레포의 크기 (지난 번에는 전체 작업 일에 대해 전체를 체크 아웃하는 데 걸렸습니다.)와 내가 수행 한 작업의 양이 적습니다. hard 재설정 (궁극적으로 트릭을 수행하는 것처럼 보였습니다), 나는 hard 재설정 옵션으로갔습니다.

+0

https를 통해 svn 저장소에 액세스하고 있습니까? –

+0

아니요, 이것은 http에서만 설정되었습니다. – hellatan

답변

1

실제로 git-svn이 파일 이름 바꾸기를 지원한다고 생각하지 않습니다. 이름을 바꿀 때마다이 오류가 발생합니다. 나는 항상 svn으로 이름을 바꾸고 git-svn으로 리베이스해야한다.

업데이트

이 때문에 자식-SVN은 URL을 공백으로 잘 재생되지 않는다는 사실에 가능성이있다. 프로젝트 경로를 git-svn으로 작업하게하려면 종종 프로젝트 경로의 이름을 변경해야합니다. 물론 실제로이 프로젝트를 수행하는 다른 사람들이있는 프로젝트에는 수용 가능한 솔루션이 아닙니다. 그 사람들을 위해 단순히 svn을 사용하여 파일을 이동해야합니다. 거대한 번거 로움입니다.

+0

그래서'git'에서 이름을 바꾸거나 svn에서'git svn dcommit'을하면 변경 사항을 볼 수 없다는 말입니까? – hellatan

+0

내 생각에 그것은 그렇게 생각되지만 그것은 나를 위해 작동하지 않습니다. 내가 dcommit하려고 할 때 파일을 찾을 수 없다는 오류가 발생합니다. –

+0

흠 ... 나는 그것이 좋을 것이라고 상상할 것이다. 나는 그 자신을보고, 내가 시험 할 때 어떤 일이 일어나는지보아야 할 것이다. – hellatan

1

svn의 리셋 --hard 나

을 위해 작동하지 않았다 이것의 이유는 SVN에 dcommit을 할 때,이 파일이 자식와 SVN 모두 할 것으로 보인다 삭제하는 커밋 것 같다이다 동시에 링크는 손실됩니다.

저에게 도움이되는 해결책은 문제가 발생하기 전에 마스터를 커밋으로 리셋 한 다음 모든 고의적 커밋을 마스터 (오류가없는 커밋 제외)에 다시 병합 한 다음 파일 삭제를 다시 실행하는 것입니다. 더 우아한 솔루션이있을 수 있습니다.

사이드 노트 : git svn DOES svn 파일 이름 바꾸기/파일을 올바르게 이동하십시오. 그것 (tortoisegit + mysgit 또는 jgit/egit)은 항상 자동으로 수행합니다.)

1

git-svn을 패치하면 git svn이 공백이있는 저장소에서 작동하지 않는 문제를 해결할 수있었습니다. 이 URL에 공백이 제대로 인코딩되도록

sub url_path { 
    my ($self, $path) = @_; 

    my $url = $self->{url} . '/' . $self->repo_path($path); 
    if ($self->{url} =~ m#^https?://#) { 
    $url =~ s!([^~a-zA-Z0-9_./-])!uc sprintf("%%%02x",ord($1))!eg; 
    $url =~ s!^(https?)%3A//!$1://!; 
    } 
    $url 
} 

:

나는에 url_path 기능을 업데이트했습니다.

나를 위해 작동하는 것처럼 보이지만 철저히 테스트하지 않았습니다.

1

문제가 Git> = 1.8.0에서 수정되어야한다고 생각합니다.

업그레이드를 고려해야합니다.

홈 페이지 : https://github.com/git/git

+0

그 문제에 대한 결함 ID가 있습니까? –

+0

@PatriceM. git가 메일 추적 목록을 사용하지 않기 때문에 찾을 수 없습니다. 그러나 git 1.8.x를 설치할 때 기억하는 한, 파일 이름에서의 공간 처리 문제가 해결되었습니다. – kenorb

+0

참고로 현재 Git 2.4.1 및 SVN 1.8.13에서이 문제 (SVN 폴더의 공백)가 발생합니다. – Azuvector

0

나는이 오래된 질문은 알고 있지만 나는 최근에이 정확한 문제를 가지고 내가 문제를 해결하는 방법을 공유하고 싶었다. 틀림없이 이것은 좋은 해결책이 아니지만 내 커밋을 완료 할 수있었습니다. 나는 다음을했다 :

  • 불만하에 폴더/파일을 svn을 사용하여 svn에 다시 추가했다.
  • git에서 svn (git svn dcommit --rmdir)의 원본 코드를 위임
  • git에서 폴더/파일을 삭제하고 이것을 svn에 위탁합니다.
  • 이것은 내가 추가로 2 개의 작은 커밋을 추가했음을 의미합니다. 하나는 추가하고 다른 하나는 문제가되는 폴더/파일을 제거하지만 다른 하나는 예상대로 다시 작동했습니다. 나는 이것이 좋은 해결책이 아니며 문제의 근원을 다루지는 않지만 최소한 내 코드를 저 지르도록 허용했다. 바라기를 이것은 빠른 수정이 필요한이 상황에서 다른 사람을 도울 수 있습니다.