On Fri, Mar 25, 2011 at 1:43 PM, Philip Martin <philip.mar...@wandisco.com> wrote: > Johan Corveleyn <jcor...@gmail.com> writes: > >> C:\Temp\test>dir /B >> ToDo >> >> C:\Temp\test>move todo todo >> >> C:\Temp\test>dir /B >> todo > > So "svn mv todo todo" will be a case-only rename, I guess that's OK if > it is what users expect. > > What if the file is already lower-case "todo"? Subversion is happy to > do > > svn rm todo > svn cp todo@base todo > > to generate a replace on commit. Should "svn mv todo todo" generate a > replace when the file is already "todo"?
Good question. I'm not sure. There are two other options that I can think of (let's call your suggestion option 1)): 2) svn could just ignore the no-op move, and do nothing (no warning, no error, nothing). 3) svn could error out, like it does now, with "Cannot move path 'XXX/todo' into itself" I think 2) would be more "the Windows way", so if we are aiming for platform-fidelity here, that would be my choice. Again, looking at the native "move" command on Windows, we can see that "move todo todo" acts as if it has done a move, but really didn't do anything, not even "touch" the file or the parent dir. OTOH, if we do a real case-only rename, "move todo TODO", the timestamp of the parent dir is updated (i.e., it really has changed). See below. [[[ C:\Temp\test>echo test > todo C:\Temp\test>dir Volume in drive C has no label. Volume Serial Number is 98BA-E619 Directory of C:\Temp\test 25/03/2011 13:57 <DIR> . 25/03/2011 13:57 <DIR> .. 25/03/2011 13:57 7 todo 1 File(s) 7 bytes 2 Dir(s) 2.945.830.912 bytes free C:\Temp\test>time /t 13:59 C:\Temp\test>move todo todo 1 file(s) moved. C:\Temp\test>dir Volume in drive C has no label. Volume Serial Number is 98BA-E619 Directory of C:\Temp\test 25/03/2011 13:57 <DIR> . 25/03/2011 13:57 <DIR> .. 25/03/2011 13:57 7 todo 1 File(s) 7 bytes 2 Dir(s) 2.945.384.448 bytes free C:\Temp\test>move todo TODO 1 file(s) moved. C:\Temp\test>dir Volume in drive C has no label. Volume Serial Number is 98BA-E619 Directory of C:\Temp\test 25/03/2011 14:00 <DIR> . 25/03/2011 14:00 <DIR> .. 25/03/2011 13:57 7 TODO 1 File(s) 7 bytes 2 Dir(s) 2.945.363.968 bytes free ]]] Cheers, -- Johan