Merges are good. Programmers working on the same file, should be communicating anyway. If they are NOT communicating, there are graver problems in that code.
Merge is the natural way of doing things, it brings discipline, saves time( imagine both the programmers ending up refactoring the same code ).
Lock is reactive...merge is proactive...