Merge 'From:' revision is out by one when I use Show Log

This behaviour is deliberate and not a bug. Here is an example:

8 Removed other
7 Added that
6 Fixed this
5 Created "my_branch" branch from rev 4 of trunk

Suppose you want to merge only revs 7 and 8 back into trunk. With a GUI client the intuitive thing to do is select those 2 revs and hit the merge button. If TSVN filled out the From/To fields as 7-8 you would actually only merge rev 8. That is why we do an automatic -1, and set the merge range to 6-8.

In fact the same thing happens in the ShowLog dialog when you "Revert changes from this revision". You select one revision and TSVN quietly does a merge of N:N-1 to undo the changes. In this case, the revision numbers are hidden internally, but it is exactly the same principle: you just select the revisions you want to revert/merge, which is the expected behaviour for a GUI client. TortoiseSVN is not just a wrapper for the command line client.

Usually this question comes up when someone wants to merge the whole branch back into trunk. In that case they often select 5-8 and then wonder why TSVN has used 4-8.

If you copied the branch from trunk directly in the repository, you only need to merge the changes you made on the branch. ie. select revisions 6-8 in the log dialog. However, it won't matter if you include the branch creation as well, because trunk@r4 is identical to branch@r5, so it makes no difference whether you include r5 or not.

If you created the branch by copying from a modified WC then (assuming you want to include those initial mods as well) you *must* include the branch creation so TSVN's use of r4 is correct. Using r5 would merge only the changes *after* branch creation.