Объясню ситуацию, отталкиваясь от SVN. Там у нас есть серверный хук, который читает начало каждого пришедшего файла на присутствие BOM(byte order mask) для UTF-8 и выполняет некоторую обработку в соответствии с проверкой.
Сейчас похожее нужно реализовать на GIT. Тут другая архитектура, пока толком не въехал , как это необходимо делать =( Что делаю: написал pre-receive hook на python. Положил его в пустой(git init --bare) серверный репозиторий. Когда комичу, беру ссылки старого и нового комита(которые поступают в поток ввода pre-receive hook) и смотрю у них разницу(git diff oldcommit newcommit). Был некоторый успех, когда я увидел в первых комитах в строках различия символ <U+FEFF>. Например:
commit 36f7f6bc4577a967b184c280fec1db1ac349a5e8
Author: ss@mail.ru <prog@localhost.localdomain>
Date: Mon Oct 14 11:23:51 2013 +0400
fff
diff --git a/cor_en b/cor_en
index 44ac72b..e69de29 100644
--- a/cor_en
+++ b/cor_en
@@ -1,6 +0,0 @@
-<U+FEFF>again
-secasdasdond
-thirdyyhb
-
-sfsdddd
-new
Но вот в остальных комитах, уже не наблюдаю этого символа. Пробовал менять кодировку файла и комитить - не видно символа. Подскажите, как надёжно узнать кодировку каждого комита?