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)