A: 

I've done option 1 myself and can report no pitfalls. If I understand correctly, you want to blow away the trunk and replace it outright with a branch, so... just do that!

Jonathan Feinberg
Please read an update.I can use the first approach but I do not want to do it :(
Vladimir Bezugliy
A: 

I would do it like this:

svn co http://svnhost/svn/mtest/trunk
cd trunk
svn merge http://svnhost/svn/mtest/trunk http://svnhost/svn/mtest/branches/b1

This is saying, "take the changes that get me from trunk to branch, and apply them to the trunk."

In other words, "tell me the changes that would transform trunk into branch...and do them!"

Michael Hackner
But in this case history from branch will not be saved?Is it correct?
Vladimir Bezugliy
I'm not sure what you mean; all the history will still be there.
Michael Hackner
I would like to see all revisions for the file both from trunk and from branch.Is it possible?Is it possible to do it in TortoiseSVN client?
Vladimir Bezugliy
Yes, just check the "Include merged revisions" box when you're viewing the log.
Michael Hackner
A: 

You could rollback all the changes in trunk since the branch was made, then simply re-integrate the branch into trunk in the normal way.

This is basically a reverse merge of all the changes on trunk since the branch, and gives you one revision which removes them all. Then the branch changes come in on top of that.

Jim T