Edgewall Software
Modify

Opened 7 years ago

Closed 6 years ago

#10514 closed defect (fixed)

Annotate fails on Windows - maybe when the drive letter case is incorrect

Reported by: ilewismsl Owned by: Jun Omae
Priority: normal Milestone: 0.12.6
Component: version control/browser Version: 0.12.2
Severity: normal Keywords: Annotate blame browser
Cc: Branch:
Release Notes:

Fix failures of blame view when the drive letter in repository path is lower case on Windows.

API Changes:

Description

When attempting to use Annotate in the browser, we get an error that the file to annotate is not in the same repository.

The repository named as incorrect in the error is exactly what we have set as the repository root, except that the drive letter is an upper case "D", rather than a lower case "d".

I have searched all of our configuration, an I am fairly sure that we are not using D: anywhere. In all locations we reference d:.

This seems to indicate that somewhere Trac is converting the case and either confusing itself (or maybe SubVersion).

Exact text:

Warning:Can't use blame annotator: 
svn blame failed on Sys/Private/SvnServer/CDrive/PBat/config.txt: 170000 - 'file:///d:/Svn/Repositories/msl/Sys/Private/SvnServer/CDrive/PBat/config.txt' isn't in the same repository as 'file:///D:/Svn/Repositories/msl'

Environment: Windows 7 Professional Python 2.6 SubVersion 1.7

Attachments (0)

Change History (10)

comment:1 Changed 7 years ago by Remy Blank

Milestone: next-minor-0.12.x

Sounds like a missing filename canonicalization. As a workaround, have you tried setting the repository path with a capital D, and doing a resync? I don't have a Windows setup handy ATM, so I unfortunately can't reproduce the issue.

comment:2 in reply to:  1 Changed 7 years ago by ilewismsl

I started to try it but when I got to resync (obvious, I know; it was a long day) I realized I did not really want to risk it since I was about out of time. I will, though. I am a little worried that might break something else and everything else in the system is working very nicely.

Replying to rblank:

Sounds like a missing filename canonicalization. As a workaround, have you tried setting the repository path with a capital D, and doing a resync? I don't have a Windows setup handy ATM, so I unfortunately can't reproduce the issue.

comment:3 in reply to:  1 ; Changed 7 years ago by ilewismsl

Replying to rblank: I reconfigured to D:/… and now Annotate works fine (I was overly worried about the rebuild - it took no time).

It is not clear that this is in fact a defect. It may be that I misconfigured Trac.

Our SubVersion repository seemes to think its root is D:/… At least, that is what it reports on an svn info request directly against the local repository. I have never accessed it except over a network before so I had never seen that.

I happen to like using lower case for drive letters everywhere, and most things in Trac were perfectly happy with that, but if SubVersion forces upper case on the drive letter, or even tracks the specified case, then it would not be too unreasonable for Trac to do so as well.

If you decide that, you should probably reject the repository registration right at the start if the name does not exactly match what SubVersion reports.

Sounds like a missing filename canonicalization. As a workaround…

comment:5 Changed 7 years ago by ilewismsl

I do not quite understand what I did here, but is there any way to remove a duplicate comment like 4 (a duplicate of 3)?

comment:6 in reply to:  3 ; Changed 7 years ago by Remy Blank

Replying to ilewismsl:

Replying to rblank: I reconfigured to D:/… and now Annotate works fine (I was overly worried about the rebuild - it took no time).

Good, at least your installation is now working fine.

It is not clear that this is in fact a defect. It may be that I misconfigured Trac.

No, it's clearly a defect, either in Trac or in Subversion. There's a call in the SVN API, svn_path_canonicalize() (called in Trac from _to_svn()), that should handle these kinds of issues. Either we missed to call it where we should have (probably in SubversionNode.get_annotations()), or it doesn't handle the case you describe correctly, in which case we should work around the issue.

comment:7 in reply to:  6 Changed 7 years ago by ilewismsl

Replying to rblank: Sounds good to me. Thank you for getting rid of comment 4.

No, it's clearly a defect, …

comment:8 Changed 6 years ago by Peter Suter

#11036 was closed as a duplicate.

comment:9 Changed 6 years ago by Christian Boos

Milestone: next-minor-0.12.x0.12.6

Fix is on the way (see #11167).

comment:10 Changed 6 years ago by Jun Omae

Owner: set to Jun Omae
Status: newassigned

Fixed in [11788].

comment:11 Changed 6 years ago by Jun Omae

Release Notes: modified (diff)
Resolution: fixed
Status: assignedclosed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Jun Omae.
The resolution will be deleted.
to The owner will be changed from Jun Omae to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.