Dave Lawrence wrote:
> Stefan Küng wrote:
>> Dave Lawrence wrote:
>>> Dave Lawrence wrote:
>>>> 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.
>>> I retract that statement. For some reason, if a file of the same name
>>> existed in the previous trunk, and you invoke the diff from show log of
>>> the current trunk, then the diff correctly shows the differences between
>>> the two revs of the correct file (even though it lived in the branch
>>> back in the revs that are being diffed). But for files that live in the
>>> current trunk, came from the old branch and didn't have an equivalent in
>>> the old trunk, the failure is the same. If that description is unclear
>>> (I suspect it is) then I can do another script to demonstrate.
>> Yes, please do. It's very difficult from such descriptions to find the
>> exact steps to reproduce something.
>>
>> Stefan
>>
> I think I probably confused things with that second posting. Anyway,
> attached is a script which demonstrates what happens where a directory
> has been replaced - I think this demo may be more helpful.
>
> Do a show log on "bar" after running the script a compare revisions 2
> and 3. This shows file1.txt and file2.txt modified. Clicking file2.txt
> will give an error. Clicking file1.txt will do the equivlalent of
> svn diff %REPO%/bar/file1.txt_at_2 %REPO%/foo/file1.txt_at_3
>
> Whereas I think it should do
> svn diff %REPO%/foo/file1.txt_at_2 %REPO%/foo/file1.txt_at_3
>
> Which is equivalent to
> svn diff bar/file1.txt -r2:3
> which is the operation I think the user would expect from the GUI in
> this case.
Thanks a lot for your detailed script!
Fixed in r13763.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
Received on 2008-08-26 18:01:24 CEST