Emacs has a really nice mode for applying and navigating hunks of a diff file: Diff-Mode
However, there doesn't seem to be a way to apply the full diff when in this mode. Is this just so obvious that I missed it?
There doesn't seem to be a function that does that.
You can get that functionality by using a macro. First, hit
F3 C-c C-a F4 to define a macro that applies a hunk, and then type
C-u 0 M-x kmacro-call-macro to repeatedly call that macro until an error occurs (probably at the end of the diff file).