comparing 2 commits in rugged

南楼画角 提交于 2019-12-07 14:14:59

问题


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:


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.



来源:https://stackoverflow.com/questions/14386044/comparing-2-commits-in-rugged

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!