The merge is performed by the client and stored in the working copy:
Synopsis
svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]
svn merge [[-c M]... | [-r N:M]...] [SOURCE[@REV] [WCPATH]]
Source: http://svnbook.red-bean.com/nightly/en/svn.ref.svn.c.merge.html
In the end, all that repository sees when you finally commit is a regular changeset that happens to have some svn:mergeinfo
properties.
The protocol you choose to reach the repository only affects stuff like access control or the libraries used to run hooks and manipulate the database (both svn:
and http:
will use the server library you've set up).