On Sat, May 18, 2019 at 06:38:39PM +0200, Johannes Sixt wrote:
> Am 18.05.19 um 14:58 schrieb Ax Da:
> > You can rename files like this:
> > git mv File.txt file.txt
>
> On a case-insensitive, case-preserving filesystem, a case-only rename
> operation is better performed in two steps that do not just change the case:
>
> git mv File.txt file.txtx
> git mv file.txtx file.txt
Is this still needed in latest versions of Git, please see below ?
A quick test shows that both the file is renamed and the index is updated:
user@mac:~/projects/git/git.pu> git mv Makefile MAKEFILE
user@mac:~/projects/git/git.pu> ls -l MAKEFILE
-rw-r--r-- 1 tb staff 100301 Apr 17 16:53 MAKEFILE
user@mac:~/projects/git/git.pu> git status
HEAD detached at git.git/pu
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: Makefile -> MAKEFILE
commit baa37bff9a845471754d3f47957d58a6ccc30058
Author: David Turner <[email protected]>
Date: Thu May 8 10:23:34 2014 -0700
mv: allow renaming to fix case on case insensitive filesystems
"git mv hello.txt Hello.txt" on a case insensitive filesystem
always triggers "destination already exists" error, because these
two names refer to the same path from the filesystem's point of
view, and requires the user to give "--force" when correcting the
case of the path recorded in the index and in the next commit.
Detect this case and allow it without requiring "--force".
Signed-off-by: David Turner <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
[snip]