Что может привести к тому, что git испортит кодировку символов?

Редактировать:git не связывается с кодировкой символов. Это все еще здесь, чтобы делиться знаниями и не допускать, чтобы другие совершали ту же ошибку.


Контекст: Мое предприятие использует репозиторий svn. Я использую git-svn в качестве клиента для взаимодействия с этим репозиторием. Все текстовые файлы в проекте закодированы (и должны быть) кодировкой Windows по умолчанию (cp-....). Я использую git-расширения, а иногда и командную строку для пилотирования git.

Что я сделал: В течение последних 3 дней я работал над новой функцией и сделал несколько локальных коммитов. Наконец, я объединил все эти коммиты в один, используя интерактивную перебазировку, затем я использовал git svn dcommit, чтобы отправить все в репозиторий svn в один коммит.

Что произошло потом: Коллега сказал мне, что все акценты перепутались в файлах, которые я модифицировал, и в новых файлах после моего коммита. Я уже коммитил текстовые файлы с акцентами в том же репозитории с моей установкой git + svn раньше, и я впервые сталкиваюсь с этой проблемой.

Мое расследование: Я сделал следующее для расследования: открыл файлы с помощью notepad++ и попробовал самые последние кодировки (включая Windows по умолчанию и UTF-8) для их просмотра: ни один из них не мог правильно отображать диакритические знаки, и разные акценты всегда передаются одной и той же последовательностью странных глифов.

Временный обходной путь: я быстро создал обратную фиксацию с расширением git и "dcommited" ее.

Вопрос:Мой корпоративный репозиторий svn в порядке, но теперь мне нужно решить две следующие проблемы:

  1. Понять, что произошло с символами с диакритическими знаками
  2. Извлечь мою работу из истории SVN и зафиксировать это должным образом (если возможно, не просматривая вручную все символы с акцентами)

Кто-нибудь может дать некоторые подсказки (я новичок в git)?

21
задан Samuel Rossille 23 May 2012 в 19:06
поделиться