Quoting Daniel Berlin <dber...@dberlin.org>:
Branches always start with a copy of a directory somewhere else, at least in the gcc repo. Further, at least in the gcc repo, all branches start with a copy of a directory from branches or from trunk. So, it's fairly easy to detect branches.
I disagree. In svn, you can legitimately rename / move around directories of branches. This will be implemented as copying the directory and then deleting the original. That's not trivial to distinguish from cutting a branch from another branch, and then deleting the latter. What about giving the conversion tool a list of branch and tag directories? I would think that conversions are few and far between, and the effort of compiling the list will be small compared to the time lost when the conversion gets things wrong.