Вы правы, что расширение largefiles позволит избежать вздутия хранилища.Что происходит, так это то, что вы загружаете только большие файлы, необходимые для проверяемой ревизии.Таким образом, если у вас есть файл размером 50 МБ, и он был радикально отредактирован 10 раз, то версии могут занять 500 МБ на сервере.Однако, когда вы делаете hg update
, вы загружаете только ту версию 50 МБ, которая необходима для этой ревизии.
Вы также правы, что расширение largefiles не помогает с объединениями.Фактически, он полностью пропускает шаг слияния и выдает только следующее:
largefile <some large file> has a merge conflict
keep (l)ocal or take (o)ther?
У вас нет возможности использовать обычный механизм слияния.
Для блокировки вы можетеиспользуйте расширение lock , которое я написал для клиента.Они хотели это для своего отдела документации, где люди будут работать с файлами, которые не могут быть легко объединены.По сути, он превращает Mercurial в централизованную систему, аналогичную Subversion: блокировки хранятся в файле в центральном хранилище, и клиент связывается с этим хранилищем при запуске hg locks
и до hg commit
.