I've been fighting with TkDiff multi-pair diffs also. So far I've only managed to get the very unhelpful:
Error: you specified 6 file(s) and 0 revision(s)
...but I'll add my experience and some notes here.
Perforce here at work is already does the right thing for me.
Here's what ps
says for a nice working Perforce multi-pair diff
(I've moved every separate argv item onto it's own line):
wish
/tools/eng/perforce/tkdiff.tcl
--
:
/tmp/g4-60077/cache/depot/path/to/file1#740
/home/douglasdd/work/src1/path/to/file1
:
/tmp/g4-60077/cache/depot/path/to/file2#15
/home/douglasdd/work/src1/path/to/file2
From this I'm guessing that part of what's missing in Leon's answer above is the '--' and ':' before the first file pair. BUT this is not enough.
Our perforce version of TkDiff is ancient (3.0x) so I'm trying to use my locally installed 4.1.x version. But no luck so far...
Manually running this works:
wish /tools/eng/perforce/tkdiff.tcl -- : "/tmp/g4-60077/cache/depot/path/to/file1#740" /home/douglasdd/work/src1/path/to/file1 : "/tmp/g4-60077/cache/depot/path/to/file2#15" /home/douglasdd/work/src1/path/to/file2
But manually running this fails:
wish /usr/local/bin/tkdiff -- : "/tmp/g4-60077/cache/depot/path/to/file1#740" /home/douglasdd/work/src1/path/to/file1 : "/tmp/g4-60077/cache/depot/path/to/file2#15" /home/douglasdd/work/src1/path/to/file2
...with the dreaded:
Error: you specified 6 file(s) and 0 revision(s)
From which I'm force to wonder if perhaps Perforce has their own custom-hacked version of TkDiff??
Sorry this doesn't really help.