You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@subversion.apache.org by "Daniel Sahlberg (Jira)" <ji...@apache.org> on 2021/12/28 09:56:00 UTC

[jira] [Commented] (SVN-667) handle file name case sensitivity edge cases

    [ https://issues.apache.org/jira/browse/SVN-667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17466040#comment-17466040 ] 

Daniel Sahlberg commented on SVN-667:
-------------------------------------

Windows (running Win11 and SVN trunk, basically 1.14.1 + a bunch of commits) seems to behave these days:

[[[
C:\Devel\temp>svnadmin create repo_667
 
C:\Devel\temp>svn co file:///Devel/temp/repo_667 wc_667
Checked out revision 0.
 
C:\Devel\temp>cd wc_667
 
C:\Devel\temp\wc_667>echo "new file">file
 
C:\Devel\temp\wc_667>svn add File
A         file
 
C:\Devel\temp\wc_667>svn commit -m "data"
Adding         file
Transmitting file data .done
Committing transaction...
Committed revision 1.
 
C:\Devel\temp\wc_667>svn status
 
C:\Devel\temp\wc_667>svn up
Updating '.':
At revision 1.
 
C:\Devel\temp\wc_667>dir /w
 Volume in drive C has no label.
 Volume Serial Number is 0A1C-A68F
 
 Directory of C:\Devel\temp\wc_667
 
[.]    [..]   file
               1 File(s)             12 bytes
               2 Dir(s)  352 359 112 704 bytes free
 
C:\Devel\temp\wc_667>svn rename file File
A         File
D         file
 
C:\Devel\temp\wc_667>dir /w
 Volume in drive C has no label.
 Volume Serial Number is 0A1C-A68F
 
 Directory of C:\Devel\temp\wc_667
 
[.]    [..]   File
               1 File(s)             12 bytes
               2 Dir(s)  352 359 108 608 bytes free
 
C:\Devel\temp\wc_667>svn ci -m "rename"
Adding         File
Deleting       file
Committing transaction...
Committed revision 2.
 
C:\Devel\temp\wc_667>svn up
Updating '.':
At revision 2.
 
C:\Devel\temp\wc_667>dir /w
 Volume in drive C has no label.
 Volume Serial Number is 0A1C-A68F
 
 Directory of C:\Devel\temp\wc_667
 
[.]    [..]   File
               1 File(s)             12 bytes
               2 Dir(s)  352 357 994 496 bytes free
 
C:\Devel\temp\wc_667>del File
 
C:\Devel\temp\wc_667>svn up
Updating '.':
Restored 'File'
At revision 2.
 
C:\Devel\temp\wc_667>dir
 Volume in drive C has no label.
 Volume Serial Number is 0A1C-A68F
 
 Directory of C:\Devel\temp\wc_667
 
2021-12-28  09:27    <DIR>          .
2021-12-28  09:25    <DIR>          ..
2021-12-28  09:27                12 File
               1 File(s)             12 bytes
               2 Dir(s)  352 357 994 496 bytes free
 
C:\Devel\temp\wc_667>dir /w
 Volume in drive C has no label.
 Volume Serial Number is 0A1C-A68F
 
 Directory of C:\Devel\temp\wc_667
 
[.]    [..]   File
               1 File(s)             12 bytes
               2 Dir(s)  352 357 994 496 bytes free
 
]]]
 
At this time, on Linux (Ubuntu on WSL):
[[[
daniel@DESKTOP-DT42993:~$ svn co file:///mnt/c/Devel/temp/repo_667 wc_667
A    wc_667/File
Checked out revision 2.
daniel@DESKTOP-DT42993:~$ cd wc_
-bash: cd: wc_: No such file or directory
daniel@DESKTOP-DT42993:~$ cd wc_667/
daniel@DESKTOP-DT42993:~/wc_667$ svn rename File file
A         file
D         File
daniel@DESKTOP-DT42993:~/wc_667$ svn ci -m 'rename in xnix
> '
Deleting       File
Adding         file
Committing transaction...
Committed revision 3.
daniel@DESKTOP-DT42993:~/wc_667$
]]]
 
Again on Windows
 
[[[
C:\Devel\temp\wc_667>svn up
Updating '.':
D    File
A    file
Updated to revision 3.
 
C:\Devel\temp\wc_667>dir
 Volume in drive C has no label.
 Volume Serial Number is 0A1C-A68F
 
 Directory of C:\Devel\temp\wc_667
 
2021-12-28  10:47    <DIR>          .
2021-12-28  09:25    <DIR>          ..
2021-12-28  10:47                12 file
               1 File(s)             12 bytes
               2 Dir(s)  352 175 525 888 bytes free
 
C:\Devel\temp\wc_667>
]]]
 
Only remaining issue is explicit delete and recreate with the wrong case. I think this should be opened as a separate issue (if/when someone wants to look at it).
 

> handle file name case sensitivity edge cases
> --------------------------------------------
>
>                 Key: SVN-667
>                 URL: https://issues.apache.org/jira/browse/SVN-667
>             Project: Subversion
>          Issue Type: Bug
>    Affects Versions: all
>         Environment: Mac OS X
>            Reporter: Subversion Importer
>            Priority: Critical
>             Fix For: unscheduled
>
>
> {noformat:nopanel=true}
> I don't think this is a high priority bug - I'm not sure it is worth fixing at all.  
> But it just tripped me up so I thought I'd enter it.
> The problem is that MacOS X's case insensitive filesystem interacts 
> strangely with unix.  i.e. ThisDir and thisdir are the same directory, but 
> most comparisons will treat them as different and so may become 
> confused.  This is not just a subversion problem - many shells have the 
> same issue.
> % svnadmin create testsvnroot
> % svn mkdir file:///Users/will/testsvnroot/mydir
> % svn co file:///Users/will/testsvnroot/mydir
> % cd mydir
> % svn mkdir testdir
> A          testdir
> % svn commit -m "added testdir"
> Adding          /Users/will/mydir/testdir
> Committed revision 2.
> % svn mv testdir Testdir
> subversion/libsvn_subr/io.c:63
> apr_error: #63, src_err 0 : <File name too long>
>   svn_io_check_path: problem checking path "Testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/testdir/
> testdir/testdir/.svn/tmp/prop-base"
> {noformat}
> Original issue reported by *uther*



--
This message was sent by Atlassian Jira
(v8.20.1#820001)