Git - работа со смешанными именами кодирования - PullRequest
14 голосов
/ 25 марта 2009

У меня есть репозиторий с коммиттерами windows (cp1252) и linux (utf8). Очевидно, что Git запутывается и ставит неверные (с точки зрения Linux) имена файлов. Я знаю, что могу использовать перехватчики для переименования файлов в одну сторону (например, на стороне linux, переименовывая файлы из cp1252 в utf8, когда они приходят, и наоборот, когда они идут), но ... как именно это сделать? Какие именно крючки я должен написать?

1 Ответ

7 голосов
/ 26 марта 2009

Хороший вопрос!

http://www.serverwatch.com/tutorials/article.php/3705216 Рассказывает об инструменте "convmv", который исправит имена файлов. Это может быть полезно.

Iconv http://www.gnu.org/software/libiconv/ может преобразовывать произвольный текст в различные наборы символов.

http://ozmm.org/posts/git_post_commit_for_profit.html Рассказывает, как сделать хук после фиксации, хотя и более специфичный для Ruby. Похоже, вы просто добавляете скрипт для выполнения в .git / hooks / post-commit, и git запустит его после вашей фиксации. Это может быть скрипт, который даже запускает скрипт в вашем git-репо.

Для сценария я бы порекомендовал просто отсканировать с помощью команды find, преобразовать имя файла в UTF-8, посмотреть, уже ли это имя, и если нет, переместить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...