When I have a lot of small changes across multiple files in a Suversion source folder, it is convenient to look at the changes via one big unified diff file. To be clear, a unified diff file, as produced by subversion, looks like this (example contains the diffs from two files, the diffs all appear in same .diff file):
Index: file1.py
===================================================================
--- file1.py (revision 2)
+++ file1.py (working copy)
@@ -227,7 +229,7 @@
some line of code
some other line of code
yet a third line of code
- first change, left
+ first change, right
some line of code
some other line of code
yet a third line of code
@@ -608,8 +610,8 @@
some line of code
some other line of code
yet a third line of code
-## second change, left
-## third change, left
+ second change, right
+ third change, right
some line of code
some other line of code
yet a third line of code
\ No newline at end of file
Index: file2.py
===================================================================
--- file2.py (revision 3)
+++ file2.py (working copy)
@@ -3607,22 +3630,22 @@
some line of code
some other line of code
yet a third line of code
-## first change, left
-## second change, left
+ first change, right
+ second change, right
some line of code
some other line of code
yet a third line of code
@@ -7988,7 +8011,7 @@
some line of code
some other line of code
yet a third line of code
- third change, left
+ third change, right
some line of code
some other line of code
yet a third line of code
As you can imagine, if there are lots of similar changes across multiple files, it is very convenient to look at this in tortoiseudiff (note the "u" in name) since it color-codes the changes and you can quickly scan them. However, tortoiseudiff shows this file as it is (plus some syntax highlighting): the "left" and "right" side of the diff are sequenced vertically rather than side by side. It would be even better to see the two sides of each diff block side by side rather than above/below. Something like this:
Index: file1.py
===================================================================
--- file1.py (revision 2)
+++ file1.py (working copy)
@@ -227,7 +229,7 @@
some line of code some line of code
some other line of code some other line of code
yet a third line of code yet a third line of code
- first change, left + first change, right
some line of code some line of code
some other line of code some other line of code
yet a third line of code yet a third line of code
@@ -608,8 +610,8 @@
some line of code some line of code
some other line of code some other line of code
yet a third line of code yet a third line of code
-## second change, left
-## third change, left
+ second change, right
+ third change, right
some line of code some line of code
some other line of code some other line of code
yet a third line of code yet a third line of code
\ No newline at end of file
Index: file2.py
===================================================================
--- file2.py (revision 3)
+++ file2.py (working copy)
@@ -3607,22 +3630,22 @@
some line of code some line of code
some other line of code some other line of code
yet a third line of code yet a third line of code
-## first change, left + first change, right
-## second change, left + second change, right
some line of code some line of code
some other line of code some other line of code
yet a third line of code yet a third line of code
@@ -7988,7 +8011,7 @@
some line of code some line of code
some other line of code some other line of code
yet a third line of code yet a third line of code
- third change, left + third change, right
some line of code some line of code
some other line of code some other line of code
yet a third line of code yet a third line of code
or even better this:
Index: file1.py
===================================================================
--- file1.py (revision 2)
+++ file1.py (working copy)
@@ -227,7 +229,7 @@
some line of code
some other line of code
yet a third line of code
- first change, left + first change, right
some line of code
some other line of code
yet a third line of code
@@ -608,8 +610,8 @@
some line of code
some other line of code
yet a third line of code
-## second change, left + second change, right
-## third change, left + third change, right
some line of code
some other line of code
yet a third line of code
\ No newline at end of file
Index: file2.py
===================================================================
--- file2.py (revision 3)
+++ file2.py (working copy)
@@ -3607,22 +3630,22 @@
some line of code
some other line of code
yet a third line of code
-## first change, left + first change, right
-## second change, left + second change, right
some line of code
some other line of code
yet a third line of code
@@ -7988,7 +8011,7 @@
some line of code
some other line of code
yet a third line of code
- third change, left + third change, right
some line of code
some other line of code
yet a third line of code
I'm on MS Windows so I looked at winmerge, tortoiseudiff, tortoiseidff, none support this. I have searched on the web for other options but no luck.
Anyone know of a tool that does this?