Debugger entered--Lisp error: (void-function closure)
You should see that as a hint as to what to do next:
Inspect the value of magit-post-display-buffer-hook (using M-x describe-variable).
Grep you ~/.emacs.d for magit-post-display-buffer-hook (using M-x rgrep).
Inspect the things that you find. ...
The problem isn't that no Magit buffer exists but rather that Magit has not even been loaded. The result is that Symbol’s function definition is void: magit-after-save-refresh-status.
So you have to delay adding this function to the hook until it actually exists, like so:
(add-hook 'after-save-hook 'magit-after-save-...
I think that the command you're looking for is magit-diff-range. Being on some branch, hit M-x and magit-diff-range. Then, when prompted, enter the name of the other branch and you will get a buffer with diffs.
Since I don't want to accidentally loose any edits in buffers I have open, I have a key bound to revert all buffers, I just run this command when making large changes to the repository which Emacs's wont be tracking.