2015-08-14 11 views
5

Pracuję nad projektem obejmującym angielski i hebrajski w Git (2.4.5 na Cygwin). Nie napotkałem żadnych problemów z używaniem hebrajskiego w repozytorium Git.Unicode w Git alias

Ponieważ często przełączam się między hebrajskim i angielskim, umieszczam aliasy w moim bashrc dla wspólnych poleceń, tak aby działały, gdy próbuję je wpisać, gdy moje ustawienie jest hebrajskie. Na przykład

alias עןא=git 

(עןא nie jest tłumaczenie lub transliteracji Git; nie jest to słowo w ogóle To jest po prostu to, co dostajesz, kiedy próbują wpisać „git”, ale klawiatura jest ustawiona na hebrajski.).

Kiedy jednak próbuję wykonać kolejny krok, pojawia się problem. I dodać aliasy do mojego Git config:

[alias] 
    דאשאוד=status 

a następnie spróbuj uruchomić:

$ עןא דאשאוד 
    fatal: bad config file line 18 in /home/Heshy/.gitconfig 

(tak, דאשאוד = stan jest linia 18)

Czy istnieje jakiś sposób, aby uzyskać Git alias do przyjmowania liter hebrajskich (poprzez .gitconfig lub w inny sposób)?

+0

Komunikat o błędzie pochodzi z funkcji 'git_parse_source()', w liniach config.h 414-477. https://github.com/git/git/blob/master/config.c#L414 –

+0

Wywołanie 'isalpha (c)' na linii 461 prawdopodobnie będzie sprawcą. Podejrzewam, że jedynym rozwiązaniem jest zmodyfikowanie źródła. Nie jestem wystarczająco pewny, aby opublikować to jako odpowiedź. –

Odpowiedz

0

Znalazłem odpowiedź na moje własne pytanie, ale jest brzydkie. Lepsze odpowiedzi są nadal doceniane.

echo 'git status "[email protected]"' > /bin/git-דאשאוד 
chmod u+x /bin/git-דאשאוד 

Działa ... ale z komunikatem o błędzie, którego nie rozumiem.

$ git דאשאוד 
error: invalid key: pager.דאשאוד 
Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

     testfile 

nothing added to commit but untracked files present (use "git add" to track) 

Komunikat o błędzie nie występuje, jeśli zamiast tego zadzwonię do pliku git-someenglishname.

Próbowałem również manipulacji, aby wyświetlić komunikat o błędzie. Problem polega na tym, że jeśli umieściłem to w/bin/git- דאשאוד, wiadomość nadal tam jest. Zakładam, że dzieje się tak dlatego, że komunikat o błędzie jest generowany przez wywołanie samego git, poza wywołaniem git-דאשאוד.

Domyślam się, że pełnym rozwiązaniem byłoby stworzenie skryptu otoki dla samego Git (lub może tylko dla עןא), który usuwa te komunikaty o błędach. To jest jeszcze brzydsze. Jak już powiedziałem, lepsza odpowiedź nadal byłaby bardzo pożądana.