I've attached a script (as a .txt) to create a simple repos with 4 revs
to demonstrate this problem. It creates test.txt, modifies it in revs 2
and 3, and renames it to test_newname.txt in rev 4.
To put things in context, it then does a command line svn diff on rev 1
and 2 using peg revisions in different ways.
After running the script, do a show log on test_wc, and click compare
revisions on rev 1 and 2. It shows test.txt modified. So far so good.
Now double lick on test.txt, and the error occurs:
"File not found: revision 4, path '/test.txt'
It (I presume) is trying to diff revs 1 and 2 of test.txt_at_4, but
test.txt no longer exists at rev 4. I think that it should either use
test.txt_at_2 or text_newname.txt_at_4 (not sure if there is a preference here).
It could be worse, because if a trunk has been replaced by a branch,
this behavior could actually bring up a diff on completely the wrong file.
If show log is launched from the repo-browser, with the browser set to
show a specific revision, then it is that revision that is used as the
peg revision, so this is a fairly straightforward workaround, now I have
figured it out.
I have seen the issue in "real life" on an http repo. I checked nightly
build 1.5.2.13747 and the behavior is the same.
Thanks
REM My CWD is C:\SVN\tests
set REPO=file:///c:/SVN/tests/test_repo
svnadmin create test_repo
svn co %REPO% test_wc
cd test_wc
echo "Text added at r1" > test.txt
svn add test.txt
svn ci . -m"test"
echo "Text added at r2" >> test.txt
svn ci . -m"test"
echo "Text added at r3" >> test.txt
svn ci . -m"test"
svn mv test.txt test_newname.txt
svn ci . -m"test"
REM various different ways of diffing revs 1 and 2
svn diff . -r1:2
svn diff %REPO%/test.txt_at_1 %REPO%/test.txt_at_2
svn diff test_newname.txt_at_BASE -r1:2
svn diff test_newname.txt_at_HEAD -r1:2
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_tortoisesvn.tigris.org
For additional commands, e-mail: users-help_at_tortoisesvn.tigris.org
Received on 2008-08-22 18:45:46 CEST