Today a colleague was a bit puzzled by how I generated a patch in WinMerge. This can be useful if you're not using something like Git in your workflow, or if, like me, Git just isn't working for you (in my case, a unix file being edited in windows resulted in a patch that replaced the entire source file).

So, open both the versions of the source file in WinMerge, the one you want to be the target version to patch on the left and the current one on the right. You can do this manually or in a number of ways in Git, but in my case I used
> git difftool HEAD~3 HEAD

to produce a patch that embodies my last three commits. Note that to use difftool, you need to have Git configured correctly to open WinMerge. You will see the base version on the left side and the current one on the right, just like we want it. Then, simply go into the Tools menu and click Generate Patch. A window will appear with a bunch of options. I mainly use the default, but you have three different syntaxes for the patch files, as well as options regarding context and some less interesting stuff. Browse to/type your target file for the patch and confirm the window.

VoilĂ , a very simple way to generate patches using WinMerge.