Wednesday, 29 July 2009

Tortoise SVN Bizarre Tree Conflicts When Reintegrating A Branch

I use Tortoise SVN as a client application to manage a Subversion repository hosted by CVSDude.

If like me you blindly “hit the tit” when you see this on your machine:

tortoisesvn

and think little else about upgrading your version of Tortoise-SVN client whenever you can… FFS STOP!

Version 1.6.0 of the SVN-client app introduced enhanced handling of tree conflicts. A tree conflict can occur when the following happens:

  • Two developers check out branch 1.
  • Developer 1 updates a file in the branch and commits the changes.
  • Developer 2 deletes their local copy of the file then updates their working copy prior to checking back in.
  • A tree conflict is detected on that file which must be resolved prior to checking the working copy back in.

Lets cut to the chase:

Don’t use version 1.6.x of Tortoise SVN client with SVN server of less than 1.5.6. It will bring pain and suffering.

Symptoms of using version 1.6.3 of Tortoise SVN and SVN Server with a version of less than 1.6 include:

  • Tree conflicts detected that don’t make any sense - files that I know for a fact haven’t been changed on the trunk are showing up as tree conflicts when merging a feature branch back in.
  • “Successfully” merged files don’t contain the expected updated content.
  • General stress and anger to the developers’ colleagues and spouse.
  • General bad language in random tweets on the matter.

Downgrading the version of Tortoise SVN on my development machine to version 1.5.9 fixed the problem for me and I successfully merged a branch back into the trunk with no problems. I hope this saves someone the three hours of hacking about that I endured yesterday…

2 comments:

  1. THANK YOU!!!! you just saved me much-o time... I <3 this post.

    ReplyDelete
  2. We've just recently upgraded to Subversion 1.6.4 on our servers. (http://blog.cvsdude.com/bid/24847/CVSDude-Upgrades-to-Subversion-1-6-4) You may need to "upgrade" your individual repositories if you use CVSDude. You can do this by going to the Services -> Subversion -> Upgrade Subversion.

    ReplyDelete