2015-08-14 77 views
5

我正在開發一個涉及Git中的英語和希伯來語的項目(Cygwin上的2.4.5)。在Git倉庫中使用希伯來文我沒有遇到任何問題。Git別名中的Unicode

因爲我經常在希伯來語和英語之間來回切換,所以我在我的bashrc中爲常用命令添加了別名,以便在我的設置爲希伯來語時嘗試輸入它們時使用。例如

alias עןא=git 

(עןא不是混帳的翻譯或音譯;它不是一個詞在所有這只是你得到什麼,當你嘗試鍵入「混帳」,但你的鍵盤設置爲希伯來語。)。

但是,當我嘗試採取下一步時,我遇到了問題。我添加別名到我的混帳配置:

[alias] 
    דאשאוד=status 

,然後嘗試運行:

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

(是的,דאשאוד=狀態是第18行)

有沒有什麼辦法讓一個Git別名接受希伯來字母(通過.gitconfig或其他方式)?

+0

錯誤消息來自'git_parse_source()'函數,在config.h行414-477中。 https://github.com/git/git/blob/master/config.c#L414 –

+0

461行對'isalpha(c)'的調用可能是罪魁禍首。我懷疑唯一的解決辦法是修改源代碼。我不確定是否可以將其作爲答案發布。 –

回答

0

我找到了自己的問題的答案,但它很醜。更好的答案仍然值得讚賞。

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

它的作品...但有一個我不明白的錯誤消息。

$ 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) 

如果我改用git-someenglishname來調用文件,錯誤信息不會發生。

我也嘗試了一些操作來清除錯誤信息。問題是,如果我把它放在/ bin/git-דאשאוד中,消息仍然存在。我認爲這是因爲錯誤消息是由調用git本身產生的,而不是調用git-דאשאוד。

我想一個完整的解決方案是爲git創建一個包裝腳本(或者也許只是forעןא)來移除這些錯誤信息。這更醜陋。正如我所說,更好的答案仍然是非常受歡迎的。