Шифрование файлов, добавленных в репозитории Mercurial при фиксации - PullRequest
2 голосов
/ 21 сентября 2010

Прочитав этот прошлый вопрос для git, я хотел бы спросить, существует ли что-то подобное, но

  1. можно сделать программно (список файлов) на каждой машине;
  2. работает для Mercurial.

Причина этого заключается в том, что я хотел бы включить в свой публичный репозиторий dotfiles некоторые файлы конфигурации, в которых пароль хранится в виде открытого текста.Я знаю, что мог бы написать скрипт для hg (1), но я хотел бы знать, есть ли альтернативные подходы, просто ради любопытства.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 21 сентября 2010

Вы можете использовать пару pre-commit и post-update хуков для шифрования / дешифрования по мере необходимости.См. http://hgbook.red -bean.com / read / processing-repository-events-with-hooks.html для получения дополнительной информации.

Однако, стоит указать, что если вы хранитеЗашифрованный текст в вашем репо, вы не сможете создавать значимые различия - по сути, все будет похоже на двоичный файл, но также плохо сжимается.

2 голосов
/ 24 сентября 2010

Mercurial имеет систему фильтрации , которая позволяет манипулировать файлами, когда они читаются из репозитория или записываются обратно.Если у вас есть программа, подобная агенту SSH, которая позволяет выполнять неинтерактивное шифрование и дешифрование, то это может быть просто осуществимо.

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

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

...