summaryrefslogtreecommitdiff
path: root/app/models/commit.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/commit.rb')
-rw-r--r--app/models/commit.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 5efb20cea3b..200c915a335 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -150,4 +150,19 @@ class Commit
def parents_count
parents && parents.count || 0
end
+
+ # Shows the diff between the commit's parent and the commit.
+ #
+ # Cuts out the header and stats from #to_patch and returns only the diff.
+ def to_diff
+ # see Grit::Commit#show
+ patch = to_patch
+
+ # discard lines before the diff
+ lines = patch.split("\n")
+ while !lines.first.start_with?("diff --git") do
+ lines.shift
+ end
+ lines.join("\n")
+ end
end