I had not looked into the issue of why SVN sees user IDs as upper case very much. I suspect that at least some of the story is that some people type in their user name in all upper case. However, that is not the whole story. I never enter my user name in all upper case. I only use 'ian'. A brief look around indicated that this was going to be hard for me to find. My user ID seems mostly to now be lower case again, unlike when I first reported this issue, though a number of other users largely have upper case user IDs showing in Subversion. However, I just looked at a small repository we have and several recent check ins show me as IAN. I have not logged into the SVN client on my machine for a long time and my cached credentials have not changes from ian@<domain>.
The reason I ignored this issue is that our Windows authorization is case insensitive. So, it does not matter a lot. And I suspect that the ultimate culprit on the user names changing is something in Windows. over which I have no control even if I could isolate it. That is a lot of why we have ignore_auth_case set. We have no good way to make users log in with case sensitive user name. Windows will not enforce it, and worse yet, sometimes Windows decides it would be a good idea to change the case provided (I do not know when it does this, but I am quite certain that it does). So, even if I could work out what is going on exactly, I would have a hard time getting users to log in consistently whether I like it or not and I doubt very much I could do anything about Windows. I could coerce the user names to lower case somewhere in Apache, but I looked at that when I first encountered the issue and I do not understand rewrites well enough to trust myself to mess with user IDs reliably. I did just try looking at the revision logs on our small repository using svn log and what Trac shows in its timeline matches the user name case that svn log shows. So, Trac is getting correct user names as seen by Subversion. To me, it seems that whether you log into Trac through your Subversion user name, you connect directly, or log in some other way, the authorization should follow the same rules, and preferably go through the same code to reach that goal. Of course, as you say, this is a Trac dev decision. We already live with all user names showing up as all lower case in Trac. And, personally, I prefer the consistent user name case given that we have no easy option to get case sensitive user names. It would cause us no trouble if the same occurred under Subversion logs since our Subversion authorization is also case insensitive. But, I can easily imagine that someone else could be very unhappy with a timeline report that did not match what svn log reports. But, it also seems likely to me that such a person would never set ignore_auth_case true. I would personally prefer that the Subversion logs and Repository browser show the actual user name as seen in Subverison and that that the Trac authorizations use all lower case in all places. That lets me see what Subversion sees and it also means that Trac has consistent user names. Trac does not look at ignore_auth_case when deciding who made a change, at least as far as I can tell, so it sees a change by IAN as different from a change by ian. If all log ons always used ignore_auth_case rules, then that could not happen. On Tuesday, March 18, 2014 4:12:29 PM UTC-8, RjOllos wrote: > > My previous comment was based on my understanding that you don't know why > the Subversion username is appearing in all uppercase characters since you > have authenticated using a username with lowercase characters. Presumably > that is a Subversion issue, as you've suggested. It would be nice to know > what the command line client displays for the changeset metadata though. > > You are also wondering why the [trac] ignore_auth_case parameter is not > being respected in CommitTicketUpdater. > > The effect of the ignore_auth_case parameter is to convert a username to > lowercase when a Request object is constructed. Usually `PermissionCache` > is constructed using `req.authname` for the `username` parameter: > `PermissionCache(self.env, req.authname)`, and that PermissionCache is used > to grant/deny authorization. In `CommitTicketUpdater` we aren't working > with a `Request` object, but to get the same effect we can convert the > author parameter to lowercase here: > > http://trac.edgewall.org/browser/tags/trac-1.0.1/tracopt/ticket/commit_updater.py?marks=211#L209 > > However, that would leave the author of the ticket comment in its > case-sensitive form. > > > <https://lh5.googleusercontent.com/-NMpt-nWcKq4/UyjaVujO40I/AAAAAAAABMc/498Bc7i_c90/s1600/Screenshot+from+2014-03-18+16%3A42%3A19.png> > > > > > > > > > > > > To work around that, we could replace the author of the Changeset object > with its lower case form, but it should also be realized that the > case-sensitivity of the username will be reflected anywhere the Subversion > changeset username is displayed, for example on the Repository Browser page: > > > <https://lh5.googleusercontent.com/-zqHgAgEL98A/UyjaeaffHZI/AAAAAAAABMk/4zUXYxJ85wY/s1600/Screenshot+from+2014-03-18+16%3A32%3A48.png> > > > > > > > > > > > > Side note: This relates back to my question about what you see in the SVN > changeset messages. Do you see the username in uppercase characters when > viewing the changeset messages through your SVN client, and when viewing > those revisions in the repository browser? > > If we wish to optionally treat all usernames from the SVN repository as > lowercase, that issue would need to be dealt with in the Subversion FS > wrapper: > > http://trac.edgewall.org/browser/tags/trac-1.0.1/tracopt/versioncontrol/svn/svn_fs.py?marks=929#L918 > > > We could have an option to coerce all author names coming from Subversion > changesets to lower case (effectively treating those usernames the same as > ignore_auth_case). I think that would probably give us consistent behavior > throughout Trac, but I'd like to get some more feedback from the Trac devs > on that proposed change. > > An alternative is that you could just make your Subversion authorization > mechanism to be case-sensitive, but I guess we need to get to the bottom of > why that username is unexpectedly appearing in all uppercase. > > -- You received this message because you are subscribed to the Google Groups "Trac Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/trac-dev. For more options, visit https://groups.google.com/d/optout.
