objective-git을 사용하여 Git 저장소를 만들려고합니다. 문서는 GT 클래스가 함께 저장소를 만드는 방법에 대해 다소 부족하여 일부러 붙어 있습니다.Objective-Git으로 저장소 만들기
이것은 내가 지금까지 작업 한 것입니다 :
GTRepository *newRepo = [GTRepository initializeEmptyRepositoryAtFileURL:repoURL error:&error]
내가 그 디렉토리에 파일들을 복사합니다. Git 클라이언트에서 repo를 열고 작업 디렉토리에서 해당 파일을 볼 수 있습니다. 모든 것이 지금까지는 좋아 보인다. 그러나 이것이 내가 붙어있는 곳입니다. 다음 번에 실제로 지점을 만들고 그 파일을 커밋할까요?
EDIT : GTRepository에서 GTIndex를 얻었습니다. (그래도 인덱스의 fileURL 속성은 여전히 nil이므로 해당 파일을 생성하는 방법을 모르겠습니다.) 내 파일을 반복하면서 내 색인에 GTIndexEntries를 생성하는 addFile:error:
을 호출합니다. 그런 다음 writeTree:
으로 전화하여 [repository createCommitWithTree:newTree message:@"Initial Commit" parents:nil updatingReferenceNamed:nil error:&error];
에 전달하는 GTTree를 다시 가져옵니다. 이것은 유효한 GTCommit 객체와 NSError를 반환하지만, [저장소 headReferenceWithError : & 오류]; 이제 새로 생성 된 커밋에 대한 참조를 반환하지만 여전히 nil을 반환합니다. 이 커밋을 마무리하기 위해 누락 된 단계가 있습니까?
인덱스를 만들거나 리포지토리의 기존 인덱스를'[repository indexWithError : NULL]'같은 것으로로드 하시겠습니까? –
나는 인덱스 파일을 보지 못 했으므로 직접 작성해야한다고 생각했지만 indexWithError는 유효한 GTIndex를 반환합니다. 이제 GTTreeBuilder를 사용하는 대신 인덱스를 사용하여 addFile : 및 writeTree :를 사용하려고 시도합니다. –