Hi everybody,
I have a repository where some files and folders contain accented
characters due to being in French. Such names include rêve (dream),
réunion (meeting) etc.
Whether already in version control or not, git tools only show their
*decomposed* representation (I use a UTF-8 locale, see below), but don't
accept those representations as input (and auto-completion is broken for
those), which is a bit misleading (test case follows).
I've seen the threads about accented characters on OSX and the use of
'core.precomposeunicode', but as I'm running on GNU/Linux I thought this
shouldn't apply.
Since I've already had a problem in git with a weirdly encoded character
(see http://thread.gmane.org/gmane.comp.version-control.git/269710), I
wanted to get some feedback to determine whether my setup was the cause
of it or if it was normal to see decomposed file names in git. I found
in man git-status:
If a filename contains whitespace or other nonprintable
characters, that field will be quoted in the manner of a C string
literal: surrounded by ASCII double quote (34) characters, and with
interior special characters backslash-escaped.
So do everybody using accented characters see those in decomposed form
in git? And if so why some softwares built on top of it (like gitit [1])
don't inherit those decomposed representations?
[1] http://gitit.net/
Thanks!
---
test case:
$ mkdir accent-test cd !$
$ git init
$ touch rêve réunion
$ git status
On branch master
Initial commit
Untracked files:
(use git add file... to include in what will be committed)
r\303\251union
r\303\252ve
$ git add .
$ git commit -m accent test
[master (root commit) 0d776b7] accent test
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 r\303\251union
create mode 100644 r\303\252ve
$ git log --summary
commit 0d776b7a09d5384a76066999431507018e292efe
Author: Bastien Traverse bastien@traverse.email
Date: 2015-06-22 14:13:46 +0200
accent test
create mode 100644 r\303\251union
create mode 100644 r\303\252ve
$ mv rêve reve
$ git status
On branch master
Changes not staged for commit:
(use git add/rm file... to update what will be committed)
(use git checkout -- file... to discard changes in working directory)
deleted:r\303\252ve
Untracked files:
(use git add file... to include in what will be committed)
reve
no changes added to commit (use git add and/or git commit -a)
$ git add [[TAB-TAB]]
r\303\252ve reve
$ git add [[TAB]] -- git add \r\\303\\252ve\
fatal: pathspec 'r\303\252ve' did not match any files
$ git add r\303\252ve
fatal: pathspec 'r\303\252ve' did not match any files
$ git add rêve reve OR git add .
$ git status
On branch master
Changes to be committed:
(use git reset HEAD file... to unstage)
renamed:r\303\252ve - reve
I'm running an up-to-date Arch linux with following software versions
and locale config:
$ uname -a
Linux xxx 4.0.5-1-ARCH #1 SMP PREEMPT Sat Jun 6 18:37:49 CEST 2015
x86_64 GNU/Linux
$ bash --version
GNU bash, version 4.3.39(1)-release (x86_64-unknown-linux-gnu)
$ git --version
git version 2.4.3
$ locale
LANG=fr_FR.utf8
LC_CTYPE=fr_FR.utf8
LC_NUMERIC=fr_FR.utf8
LC_TIME=fr_FR.utf8
LC_COLLATE=fr_FR.utf8
LC_MONETARY=fr_FR.utf8
LC_MESSAGES=fr_FR.utf8
LC_PAPER=fr_FR.utf8
LC_NAME=fr_FR.utf8
LC_ADDRESS=fr_FR.utf8
LC_TELEPHONE=fr_FR.utf8
LC_MEASUREMENT=fr_FR.utf8
LC_IDENTIFICATION=fr_FR.utf8
LC_ALL=
$ localectl
System Locale: LANG=fr_FR.UTF8
VC Keymap: fr
X11 Layout: fr
X11 Variant: oss
Cheers
--
To unsubscribe from this list: send the line unsubscribe git in