2011-02-08 2 views
1

저는 Grit을 사용하여 repo를 만들고 몇 번만 커밋합니다. 내가 저 지르면 저의 저지름이 구원 받았지만 오래된 것이 사라집니다. 누구든지 내가 뭘 잘못하고 있는지 알지 못해?Grit 커밋은 Git Repo에서 마지막 커밋을 무시하는 것 같습니다.

먼저 repo를 만들고 커밋합니다. 나는 커밋 로그인하는 경우, 나는이 ID를 커밋 얻고, 모든 것을 내가 또 다른

index = repo.index 
index.read_tree('master') 
index.add('mytext.txt', "This is my second text") 
index.commit('Text commit') 

를 저지 할 그런

repo_name = 'repos/myrepo.git' 
repo = Repo.init_bare(repo_name) 
index = Index.new(repo) 
index.add('mytext.txt', "This is my first text") 
index.commit('Text commit') 

작동 .. 내가 자식 로그를 수행 할 때, 단지 마지막 커밋이 나타납니다 . 이 다음 줄은 1을 반환합니다.

repo.commits.count 

내가 뭘 잘못하고 있는지 알겠습니까? Grit에서 쓰기 메서드를 사용하는 방법에 대한 자습서를 찾을 수 없습니다. 그래서 어떤 링크도 인정 될 것입니다. 감사!

답변

2

반죽. 대답은 간단했다. 커밋 번호 2는 커밋 번호 1을 부모로 가질 필요가 있습니다. 그런 다음이 커밋의 역사를 형성하고, 그것을 작동 : 나는 아직도 모래 라이브러리의 쓰기 방법을 설명하는 튜토리얼 또는 가이드를 찾고 있어요

index.commit('Text commit', [repo.commits.first]) 

. rubyforge 문서는 그다지 설명하지 않습니다.

+1

힘내 자신의 설명서 (http://www.kernel.org/pub/software/scm/git/docs/), 특히 "배관"명령을 살펴보십시오. 그들 대부분은 Grit의 API에서 거의 동일하게 사용됩니다. 예 : 'Grit :: Index # commit'은'git-commit-tree'입니다 (http://www.kernel.org/pub/software/scm/git/docs/v1.7.4/git-commit-tree.html). – Koraktor

관련 문제