Неэффективная обработка переименований файлов в Mercurial - PullRequest
1 голос
/ 23 февраля 2012

Когда я переименовываю файл с помощью Mercurial, а затем фиксирую без каких-либо изменений, почему он все еще отправляет полный файл в хранилище?(Я могу сказать, потому что последующее нажатие на удаленный репозиторий показывает, сколько данных передается).Разве для него не очевидно, что ему просто нужно переименовать?

Я использую последнюю версию TortoiseHG под Windows, а рассматриваемый файл - 20 МБ текстового файла.

1 Ответ

3 голосов
/ 24 февраля 2012

Это известный недостаток формата хранения, используемого Mercurial.Вы можете найти "облегченные копии" для полной истории, но вкратце проблема заключается в том, что при переименовании создается новое revlog для нового имени файла.Новый revlog начинается со сжатого снимка полного файла - обычно это не большая проблема, но он все же больше, чем дельта нулевого размера.

Сейчас мало что можно сделать, если только вы не захотитеисправьте ваш Mercurial и запустите экспериментальный код.Хорошей новостью является то, что вам просто нужно подождать: патчи, над которыми мы работали, смогут автоматически преобразовать ваш существующий репозиторий в более компактный.Это произойдет, когда вы hg clone по сети или если вы используете hg clone --pull локально.

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