Is there a way to make the diffs during merge (i.e., dr[m], dl[m]) output a unified context diff instead of the old style diff?
Yes, you may call an external tool to merge changes.
When in the resolver, you can say:
file.c>> !<command>
then <command>
will be run with the following environment variables set:
BK_LOCAL - pathname of a temp file containing the local version
BK_GCA - file containing the common ancestor
BK_REMOTE - pathname of a temp file containing the remote version
BK_MERGE - pathname where the merged content should be placed
So you could make a little shell script:
#!/bin/sh
if [ "X$PAGER" = X ]; then PAGER=more; fi
exec bk diff -u $BK_REMOTE $BK_LOCAL | $PAGER
call that ``udiff'' and then do:
file.c>> !udiff
and you're all set.
I would like to be able to do an manual merge ('e') without the preceding automerge. Is this possible?
Yes.
The same technique as above would do it.
That is, the command run would be the editor you want run.