comparing 2 commits in rugged

2019-02-18 16:11发布

I didn't find any documentation on getting the difference between 2 files in rugged. I used the below code to commit a file using rugged

@repo=Rugged::Repository.new($reponame)
@sha=@repo.write('D:\Ruby\MyGitRepo\file1.txt','blob')
puts @sha
commit = @repo.lookup(@sha)

how can see the difference between the 2 commits of the same object in rugged?

1条回答
再贱就再见
2楼-- · 2019-02-18 16:18

The way to compare two commits in git relies on a diffing process.

brianmario recently wrapped the diffing iterator feature of libgit2. Beware that this feature is not merged yet.

Below a high level example of its future usage.

r = Rugged::Repository.new('.')
diff = r.diff(commit1, commit2)

diff.deltas.each do |delta|
  # ...
  delta.hunks.each do |hunk|
    # ...
    hunk.lines.each do |line|
      # ...
    end
  end
end

See this pull request for more information about proposed diff implementation and usage.

查看更多
登录 后发表回答