diff -Naur tkcvs_7_2/tkdiff/tkdiff tkcvs_7_2-patched/tkdiff/tkdiff
--- tkcvs_7_2/tkdiff/tkdiff	2004-01-04 03:50:15.000000000 +0100
+++ tkcvs_7_2-patched/tkdiff/tkdiff	2004-02-20 12:43:16.000000000 +0100
@@ -22,7 +22,7 @@
 #          Plain file with conflict markers:
 #              tkdiff -conflict <file>
 #
-#          Source control AccuRev/CVS/RCS/Perforce/PVCS/SCCS:
+#          Source control AccuRev/CVS/RCS/Perforce/PVCS/SCCS/SVN:
 #              tkdiff <file> (same as -r)
 #              tkdiff -r <file>
 #              tkdiff -r<rev> <file>
@@ -815,6 +815,7 @@
         set acrev "HEAD"
         set acopt ""
         set cvsopt ""
+        set svnopt ""
         set rcsopt ""
         set sccsopt ""
         set bkopt ""
@@ -825,6 +826,7 @@
         set acrev "\"$r\""
         set acopt "-v \"$r\""
         set cvsopt "-r $r"
+        set svnopt "-r $r"
         set rcsopt "$r"
         set sccsopt "-r$r"
         set bkopt "-r$r"
@@ -854,6 +856,13 @@
         }
         set finfo(lbl,$index) "$f (CVS $rev)"
         die-unless "exec $cmd update -p $cvsopt \"$f\"" "\"$finfo(pth,$index)\""
+    } elseif {[file isdirectory [file join $dirname .svn]]} {
+        set cmd "svn"
+        if {$tcl_platform(platform) == "windows"} {
+            append cmd ".exe"
+        }
+        set finfo(lbl,$index) "$f (SVN $rev)"
+        die-unless "exec $cmd cat $svnopt \"$f\"" "\"$finfo(pth,$index)\""
     } elseif {[file isdirectory [file join $dirname SCCS]]} {
         if {[sccs-is-bk]} {
             set cmd "bk"
@@ -7037,7 +7046,7 @@
     Plain file with conflict markers:
 <cmp>	tkdiff -conflict FILE</cmp>
 
-    Source control - AccuRev, BitKeeper, CVS, Perforce, PVCS, RCS, SCCS:
+    Source control - AccuRev, BitKeeper, CVS, Perforce, PVCS, RCS, SCCS, SVN:
 <cmp>	tkdiff FILE	</cmp>(same as -r)
 <cmp>	tkdiff -r FILE
 	tkdiff -rREV FILE
@@ -7048,19 +7057,19 @@
 	<cmp>-a ANCESTORFILE </cmp>
 	<cmp>-o MERGEOUTPUTFILE </cmp>
 
-$g(name) detects and supports RCS, CVS and SCCS by looking for a directory with the same name. It detects and supports PVCS by looking for a vcs.cfg file. It detects and supports AccuRev and Perforce by looking for the environment variables named ACCUREV_BIN and P4CLIENT respectively.
+$g(name) detects and supports RCS, CVS, SCCS and SVN by looking for a directory with the same name. It detects and supports PVCS by looking for a vcs.cfg file. It detects and supports AccuRev and Perforce by looking for the environment variables named ACCUREV_BIN and P4CLIENT respectively.
 
 In the first form, tkdiff will present a dialog to allow you to choose the files to diff interactively. At present this dialog only supports a diff between two files that already exist. There is no way to do a diff against a file under souce code control (unless the previous versions can be found on disk via a standard file selection dialog).
 
 In the second form, at least one of the arguments must be the name of a plain text file.  Symbolic links are acceptable, but at least one of the filename arguments must point to a real file rather than to a directory.
 
-In the remaining forms, <cmp>REV</cmp> (or <cmp>REV1</cmp> and <cmp>REV2</cmp>) must be a valid revision number for <cmp>FILE</cmp>.  Where AccuRev, RCS, CVS, SCCS, PVCS or Perforce is implied but no revision number is specified, <cmp>FILE</cmp> is compared with the the revision most recently checked in.
+In the remaining forms, <cmp>REV</cmp> (or <cmp>REV1</cmp> and <cmp>REV2</cmp>) must be a valid revision number for <cmp>FILE</cmp>.  Where AccuRev, RCS, CVS, SCCS, PVCS, Perforce or SVN is implied but no revision number is specified, <cmp>FILE</cmp> is compared with the the revision most recently checked in.
 
 To merge a file with conflict markers generated by "<cmp>merge</cmp>", "<cmp>cvs</cmp>", or "<cmp>vmrg</cmp>", use "<cmp>tkdiff -conflict FILE</cmp>". The file is split into two temporary files which you can merge as usual (see below).
 
-Note that "<cmp>tkdiff FILE</cmp>" is the same as "<cmp>tkdiff -r FILE</cmp>". The CVS version has priority, followed by the SCCS version -- i.e. if a CVS directory is present, CVS; if not and an SCCS directory is present, SCCS is assumed; otherwise, if a CVS.CFG file is found, PVCS is assumed; otherwise RCS is assumed. If none of the above apply and the AccuRev environment variable ACCUREV_BIN is found, AccuRev is used. If P4CLIENT is found, Perforce is used.
+Note that "<cmp>tkdiff FILE</cmp>" is the same as "<cmp>tkdiff -r FILE</cmp>". The CVS version has priority, followed by the SVN version -- i.e. if a CVS directory is present, CVS; if not and an .svn directory is present, SVN is assumed; if not and an SCCS directory is present, SCCS is assumed; otherwise, if a CVS.CFG file is found, PVCS is assumed; otherwise RCS is assumed. If none of the above apply and the AccuRev environment variable ACCUREV_BIN is found, AccuRev is used. If P4CLIENT is found, Perforce is used.
 
-Note also that the "<cmp>tkdiff -rREV -r FILE</cmp>" form results in a comparison between revision <cmp>REV</cmp> and the head of the AccuRev, RCS, CVS, SCCS, PVCS or Perforce revision tree.
+Note also that the "<cmp>tkdiff -rREV -r FILE</cmp>" form results in a comparison between revision <cmp>REV</cmp> and the head of the AccuRev, RCS, CVS, SCCS, PVCS, Perforce or SVN revision tree.
 
 If the merge output filename is not specified, tkdiff will present a dialog to allow you to choose the name of the merge output file.
 
diff -Naur tkcvs_7_2/tkdiff-svn-wrapper tkcvs_7_2-patched/tkdiff-svn-wrapper
--- tkcvs_7_2/tkdiff-svn-wrapper	1970-01-01 01:00:00.000000000 +0100
+++ tkcvs_7_2-patched/tkdiff-svn-wrapper	2004-02-20 18:03:30.000000000 +0100
@@ -0,0 +1,49 @@
+#!/bin/bash 
+ARGS=("$@") # creates an array variable 
+LABEL1="${ARGS[$(($#-4))]}"; unset ARGS[$(($#-4))] 
+LABEL2="${ARGS[$(($#-3))]}"; unset ARGS[$(($#-3))] 
+FILE1="${ARGS[$(($#-2))]}"; unset ARGS[$(($#-2))] 
+FILE2="${ARGS[$(($#-1))]}"; unset ARGS[$(($#-1))] 
+
+tkdiff "$FILE1" "$FILE2" 
+
+# Labels are not supported from tkdiff right now. Feature request pending.
+# As reference: The tkdiff command line options (from tkdiff help):
+# 
+#     Plain files:
+# 	tkdiff FILE1 FILE2
+# 
+#     Plain file with conflict markers:
+# 	tkdiff -conflict FILE
+# 
+#     Source control - AccuRev, BitKeeper, CVS, Perforce, PVCS, RCS, SCCS, SVN:
+# 	tkdiff FILE	(same as -r)
+# 	tkdiff -r FILE
+# 	tkdiff -rREV FILE
+# 	tkdiff -rREV -r FILE
+# 	tkdiff -rREV1 -rREV2 FILE
+# 
+#     Additional optional parameters:
+# 	-a ANCESTORFILE 
+# 	-o MERGEOUTPUTFILE 
+# 
+# TkDiff detects and supports RCS, CVS and SCCS by looking for a directory with
+# the same name. It detects and supports PVCS by looking for a vcs.cfg file. It
+# detects and supports AccuRev and Perforce by looking for the environment
+# variables named ACCUREV_BIN and P4CLIENT respectively.
+# 
+# In the first form, tkdiff will present a dialog to allow you to choose the
+# files to diff interactively. At present this dialog only supports a diff
+# between two files that already exist. There is no way to do a diff against a
+# file under souce code control (unless the previous versions can be found on
+# disk via a standard file selection dialog).
+# 
+# In the second form, at least one of the arguments must be the name of a plain
+# text file.  Symbolic links are acceptable, but at least one of the filename
+# arguments must point to a real file rather than to a directory.
+# 
+# In the remaining forms, REV (or REV1 and REV2) must be a valid revision number
+# for FILE.  Where AccuRev, RCS, CVS, SCCS, PVCS or Perforce is implied but no
+# revision number is specified, FILE is compared with the the revision most
+# recently checked in.
+# 
