I use portsnap and portmaster. I used portupgrade earlier, and it mostly works fine. But having to maintain the database manually to resolve conflicts was a drawback. I have little experience with portmaster, just used it for one month, but no problems yet.