def full_reverse_diff_for(page, sha1, sha2 = nil)
      sha1, sha2 = "#{sha1}^", sha1 if sha2.nil?
      if page
        path = (page.respond_to?(:path) ? page.path : page.to_s)
        return repo.diff(sha2, sha1, path).first.diff
      end
      repo.diff(sha2, sha1).map { |d| d.diff }.join("\n")
    end
def full_reverse_diff_for(page, sha1, sha2 = nil)
      sha1, sha2 = "#{sha1}^", sha1 if sha2.nil?
      if page
        path = (page.respond_to?(:path) ? page.path : page.to_s)
        return repo.diff(sha2, sha1, path).first.diff
      end
      repo.diff(sha2, sha1).map { |d| d.diff }.join("\n")
    end
Creates a reverse diff for the given SHAs on the given Gollum::Page.

 page   - The Gollum::Page to scope the patch to, or a String Path.
 sha1   - String SHA1 of the earlier parent if two SHAs are given,
          or the child.
 sha2   - Optional String SHA1 of the child.

 Returns a String of the reverse Diff to apply.