tkdiff doesn't work with Subversion 1.7 unless it's run in an SVN working directory. It will result in an error if tkdiff is run in some other directory and invoked like this:
tkdiff -rHEAD /some/path/to/working/directory/file.txt
This will give the following error:
"File '/some/path/to/working/directory/file.txt' is not part of a revision control system."
tkdiff 4.1.4 would decide whether it was dealing with SVN by looking for a ".svn" subdirectory in the parent directory of the file specified on the command line. tkdiff 4.2 is smart enough to know that SVN 1.7 no longer puts a ".svn" directory in every working directory, so it checks for SVN by running "svn info". Unfortunately, it always runs "svn info" in the current working directory.
The fix is simple:
The fix is this one line patch:
793c793
< } elseif {! [catch {eval "exec svn info"}]} {
---
> } elseif {! [catch {eval "exec svn info $dirname"}]} {
We ran in to this at my company as well. We just migrated from svn 1.6 to 1.8. I came up with basically the same fix, but i called svn info on the $f instead of $dirname (which is probably slightly better, since it will give you the proper error message if the directory is under svn control but the file is not):
Should now be fixed as of Version 4.3